20260105 [TIL] 5 - Java 기초 문법(변수, 입출력, 연산자, 조건문, 반복문, 배열, 메서드)

2026. 1. 5. 12:41·IL/TIL

🚩Hello Java!

public class Main {
    public static void main(String[] args) {
        //TIP Press <shortcut actionId="ShowIntentionActions"/> with your caret at the highlighted text
        // to see how IntelliJ IDEA suggests fixing it.
        System.out.printf("Hello and welcome!");

        new MyNewClass();

        for (int i = 1; i <= 5; i++) {
            //TIP Press <shortcut actionId="Debug"/> to start debugging your code. We have set one <icon src="AllIcons.Debugger.Db_set_breakpoint"/> breakpoint
            // for you, but you can always add more by pressing <shortcut actionId="ToggleLineBreakpoint"/>.
            System.out.println("i = " + i);
        }
    }
}

 

 


🚩변수

package chapter1.variable;

public class Main {

    public static void main(String[] args) {

        // [자료형] [변수이름];
        
        // 정수형
        int a;
        a = 1;
        a = 2;
        System.out.println("a = " + a);
        
        // 논리형
        boolean booleanBox = true;
        booleanBox = false;
        System.out.println("booleanBox = " + booleanBox);

        // 문자형
        char charBox = 'a';
        charBox = 'b';
        System.out.println("charBox = " + charBox);

        // 큰 정수형
        long longBox = 1;
        longBox = 2;
        System.out.println("longBox = " + longBox);

        // 실수형
        float floatBox = 0.12345678f;
        floatBox = 0.1234567890f;
        System.out.println("floatBox = " + floatBox);

        double doubleBox = 0.1234567890;
        System.out.println("doubleBox = " + doubleBox);

        // 캐스팅(Casting)
        // 다운캐스팅: 큰 데이터를 -> 작은 상자
        double bigBox = 10.123;
        int smallBox = (int) bigBox;
        System.out.println("smallBox = " + smallBox);

        // 업캐스팅: 작은 데이터 -> 큰 상자
        int smallBox2 = 10;
        double bigBox2 = smallBox2;
        System.out.println("bigBox2 = " + bigBox2);

        // 문자열 데이터
        char a1 = 'a';
        String str = "안녕하세요!";

        // 정수형
        int a2 = 1;
        long a3 = 1;

        // 논리형
        boolean b1 = true;

    }

}

 

 


🚩입출력

package chapter1.io;

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {

        // 출력
        //println 사용
        System.out.println("Hello");
        System.out.println("Java");

        // print 사용
        System.out.print("안녕");
        System.out.print("자바");

        // 개행문자 포함 출력
        System.out.println("Hello\nWorld!");

        // 입력(Scanner)
        // 스캐너 객체를 스캐너형 박스(scanner)
        Scanner scanner = new Scanner(System.in);

        // 정수형 데이터를 정수형 박스(a)
        int a = 1;
        
        // 문자열 입력받기
        System.out.print("좋아하는 문장을 입력하세요: ");
        String sentence  = scanner.nextLine();
        System.out.println("sentence = " + sentence);

        // 정수형(int, long) 입력받기
        System.out.print("정수(int)를 입력하세요: ");
        int intBox = scanner.nextInt();
        System.out.println("intBox = " + intBox);

        System.out.print("정수(long)를 입력하세요: ");
        long longBox = scanner.nextInt();
        System.out.println("longBox = " + longBox);

        // 소수점
        System.out.print("소수점(double) 입력하세요: ");
        double doubleBox = scanner.nextDouble();
        System.out.println("doubleBox = " + doubleBox);
    }
}

 

 


🚩연산자

package chapter1.operator;

public class Main {

    public static void main(String[] args) {

        int a = 10;
        int b = 3;

        // 기본적인 사칙연산
        int sum = a + b;
        System.out.println("sum = " + sum);

        int sub = a - b;
        System.out.println("sub = " + sub);

        int mul = a * b;
        System.out.println("mul = " + mul);

        // 나눗셈
        // 10 / 3
        int div = a / b;
        System.out.println("div = " + div);

        // a / 3.0
        double div2 = a / 3.0;
        System.out.println("div2 = " + div2);

        // 모듈로 연산자(나머지 연산) - %
        int mod = 10 % 3;
        System.out.println("mod = " + mod);

        int mod2 = 15 % 4;
        System.out.println("mod2 = " + mod2);

        int mod3 = 20 % 7;
        System.out.println("mod3 = " + mod3);

        // 시간 연산
        int mod4 = (10 + 5) % 12;
        System.out.println("mod4 = " + mod4);

        // 짝수 홀수 연산
        int mod5 = 6 % 2;
        System.out.println("mod5 = " + mod5);

        int mod6 = 7 % 2;
        System.out.println("mod6 = " + mod6);


        // 대입 연산자
        int num = 5;
        // 복합 대입 연산자
        num += 3; // num = num + 3;
        System.out.println("num = " + num);

        num -= 2; // num = num - 2;
        System.out.println("num = " + num);

        num *= 2; // num = num * 2;
        System.out.println("num = " + num);

        num /= 3; // num = num / 3;
        System.out.println("num = " + num);

        num %= 3; // num = num % 3;
        System.out.println("num = " + num);

        // 증감 연산자
        num = 1;
        num++;
        num++;
        num--;
        num--;
        System.out.println("num = " + num);

        // 전위 연산(++i) - 연산 후 값이 활용됩니다.
        int intBox = 5;
        System.out.println("(++intBox) = " + (++intBox));

        // 후위 연산
        int intBox2 = 5;
        System.out.println("(intBox2++) = " + (intBox2++));
        System.out.println("intBox2 = " + intBox2);

        // 비교연산자
        // 같음연산자(=) 같으면 true, 다르면 false
        System.out.println("10 == 10: " + (10 == 10));

        // 다름 연산자(!=) 다르면 true, 같으면 false
        System.out.println("10 != 10: " + (10 != 10));

        // 크기비교연산자
        System.out.println("10 < 5: " + (10 < 5)); // false
        System.out.println("10 >= 5: " + (10 >= 5)); // true
        System.out.println("10 <= 5: " + (10 <= 5)); // false

        // 논리연산자
        // AND 연산(&&) - 두 조건이 모두 참일 때 true 반환합니다.
        System.out.println("true && true: " + (true && true)); // true
        int age = 20;
        boolean isStudent = true;
        System.out.println(":::" + ((age > 18) && isStudent));

        // OR 연산(||) - 두 조건 중 하나라도 참이라면 true를 반환합니다.
        System.out.println("false || true: " + (false || true)); // true

        // NOT 연산자(!) - true -> false, false -> true.
        System.out.println("!true: " + (!true));

        
        
        // 연산자 우선순위
        boolean flag = ((10 + 5) > 12) && true; // 그냥 솔직히 괄호를 적극적으로 이용하는 것이 좋음
        System.out.println(flag);
        // 실행 순서: (10 + 5) > 12 && true : 산술
        // → 15 > 12 && true : 비교
        // → true && true : 논리
        // → flag = true 대입


        // 논리 연산자 우선순위
        boolean result = true || (false && false);
        System.out.println("result = " + result);

        boolean result2 = true || (false && (!false));
        System.out.println("result2 = " + result2);

        System.out.println(10 / 2 + 3 * 2 > 10 || false);
        // 실행 순서: ((10 / 2) + (3 * 2)) > 10 || false
        // → (5 + 6) > 10 || false
        // → 11 > 10 || false
        // → true || false
        // → true

        System.out.println(5 + 3 > 2 * 4 && 10 % 3 == 1);
        // 실행 순서: (5 + 3) > (2 * 4) && (10 % 3) == 1
        // → 8 > 8 && 1 == 1
        // → false && true
        // → false


        // 문자열 비교(equals()를 활용한다)
        String text1 = "hello";
        String text2 = "Hello";
        // 나쁜 예: (text == text2)
        boolean isEqual = text1.equals(text2);
        System.out.println("isEqual = " + isEqual);

        
    }
    
}
package chapter1.operator;

import java.util.Scanner;

public class OperatorMain {

    public static void main(String[] args) {
        // 연산자 과제
        int a = 15;
        int b = 4;

        // 1. 더하기
        int sum = a + b;
        // 1. 더하기 결과 출력
        System.out.println("덧셈 결과: " + sum);

        // 2. 빼기
        int sub = a - b;
        // 2. 빼기 결과 출력
        System.out.println("뺄셈 결과: " + sub);

        //....
        int mul = a * b;
        System.out.println("곱셈 결과: " + mul);
        int div = a / b;
        System.out.println("나눗셈 결과: " + div);
        int mod = a % b;
        System.out.println("나머지 결과: " + mod);



        int x = 0;
        int y = 1;

        boolean isGreater = x > y;
        boolean isSmaller = x < y;
        boolean isEqual = x == y;
        boolean isNotEqual = x != y;

        System.out.println("x가 y보다 큰가? " + isGreater);
        System.out.println("x가 y보다 작은가? " + isSmaller);
        System.out.println("x와 y가 같은가? " + isEqual);
        System.out.println("x와 y가 다른가? " + isNotEqual);




        // TODO: 사용자로부터 첫 번째 문자열 입력받기
        Scanner scanner = new Scanner(System.in);

        System.out.print("첫 번째 문자열을 입력하세요: ");
        String firstStr  = scanner.nextLine();

        // TODO: 사용자로부터 두 번째 문자열 입력받기
        System.out.print("두 번째 문자열을 입력하세요: ");
        String secondStr = scanner.nextLine();
        // TODO: 문자열 비교 결과를 변수 result 에 저장
        boolean result = firstStr.equals(secondStr);
        // TODO: 결과 출력
        System.out.println("두 문자열이 같은가요? " + result);

    }
}

 

 


🚩조건문

package chapter1.condition;

public class Main {

    public static void main(String[] args) {

        // 조건문
        // if문
//        String light = "노란불";
//
//        if (light.equals("초록불")) {
//            System.out.println("건너세요!");
//        } else if (light.equals("노란불")) {
//            System.out.println("주의하세요!");
//        } else {
//            System.out.println("멈추세요!");
//        }
//        System.out.println("...");

        // switch 문

        int number = 1;

        switch (number) {

            case 1:
                System.out.println("1입니다.");
                break;
            case 2:
                System.out.println("2입니다.");
                break;
            default:
                System.out.println("1도 아니고 2도 아닙니다.");
        }
    }
}
package chapter1.condition;

import java.util.Scanner;

public class TrafficLight {

    public static void main(String[] args) {
        // 조건문 과제
        Scanner sc = new Scanner(System.in);

        System.out.print("신호등 색상을 입력하세요 (초록불, 노란불, 빨간불): ");
        String light = sc.nextLine();

        if(light.equals("초록불")) {
            System.out.println("건너세요!");
        } else if (light.equals("노란불")) {
            System.out.println("주의하세요!");
        } else if (light.equals("빨간불")) {
            System.out.println("멈추세요!");
        } else {
            System.out.println("잘못된 입력입니다!");
        }
    }
}

 

 


🚩반복문

package chapter1.loop;

public class Main {

    public static void main(String[] args) {
        // 로봇한테 10번 인사 반복 시키기
//        System.out.println("안녕하세요!");
//        System.out.println("안녕하세요!");
//        System.out.println("안녕하세요!");
//        System.out.println("안녕하세요!");
        // 10번 반복!

        // 반복문(for) - 조건과 증감식을 포함한 반복문
//        for (int i = 1; i <= 100000; i++) {
//            // 1번째 반복: i = 1
//            // 2번째 반복: i = 2
//            // 3번째 반복: i = 3
//            // ....
//            // 11번째 반복: i = 11
//            System.out.println("안녕하세요!");
//        }

//        int customers = 5;
//        for (int i = 1; i <= customers; i++) {
//            if (i == 4) {
//                break;    // 반복문을 즉시 종료
//            }
//            if (i == 2) {
//                continue;
//            }
//            System.out.println(i + "번째 손님, 안녕하세요!");
//        }

        // 반복문(while) 조건이 참인 동안 반복
//        int i = 1;
//        while (i <= 10) {
//            System.out.println("안녕하세요!");
//            i++;
//        }

        // 반복문(do-while) 최소 한 번 실행 후 조건 검사
        int i = 1; // 시작조건
        do {
            System.out.println("안녕하세요!");
            i++;    // 조건변화수식
        } while (i <= 10); // 종결조건

    }
}
package chapter1.loop;

import java.util.Scanner;

public class Gugudan {
// 조건문 구구단 입력 받은 숫자의 구구단 출력 과제
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        System.out.print("출력할 구구단 단수를 입력하세요 (2~9): ");
        int gd = sc.nextInt();

        // 2~9 사이의 숫자인지 확인
        if (gd < 2 || gd > 9) {
            System.out.println("2에서 9 사이의 숫자를 입력하세요!");
        } else {
            System.out.println("==== " + gd + "단 ====");
            for (int i = 1; i <= 9; i++) {
                System.out.println(gd + " x " + i + " = " + (gd * i));
            }
        }
    }
}
package chapter1.loop;

public class GugudanAll {
// 모든 구구단의 출력 과제
    public static void main(String[] args) {
        int i = 0;
        for (i = 2; i <= 9; i++) {
            System.out.println("==== " + i + "단 ====");
            for (int j = 1; j <= 9; j++) {
                System.out.println(i + " x " + j + " = " + (i * j));
            }
            System.out.println();
        }
    }
}

 

 


🚩배열

package chapter1.array;

public class Main {

    public static void main(String[] args) {
        // 모험가 명단을 관리하는 법
        String name1 = "gygim";
        String name2 = "Steve";
        // ...

        String[] adventurereList = {"gygim", "Steve", "..."};

        // 1. 배열 선언
//        int[] arr;

        // 2. 배열 길이 할당
//        arr = new int[5];

        // 3. 배열 선언과 길이 동시에 할당
//        int[] arr = new int[5];
        // arr = [] [] [] [] []

        // 4. 배열 선언과 동시에 배열의 요소 할당
//        int[] arr = {10, 20, 30, 40, 50};
        // [10] [20] [30] [40] [50]

        // 배열의 길이
//        int arrLength = arr.length;
//        System.out.println("arrLength = " + arrLength);

        // 문자열 배열 선언
        String[] strArr = new String[5]; // [""] [""] [""] [""] [""]

        // 논리형 배열 선언
        boolean[] booleanArr = new boolean[3]; // [true] [false] [true]

        // 배열의 요소에 접근: 인덱스 활용 방법
        int[] arr = {10, 20, 30, 40, 50};
        //           [0] [1] [2] [3] [4]
        System.out.println("배열의 1 번째 요소 접근: " + arr[0]);
        System.out.println("배열의 2 번째 요소 접근: " + arr[1]);
        System.out.println("배열의 3 번째 요소 접근: " + arr[2]);
        System.out.println("배열의 4 번째 요소 접근: " + arr[3]);
        System.out.println("배열의 5 번째 요소 접근: " + arr[4]);

        //   0     1     2     3     4
        // [100] [200] [300] [400] [500]
//        System.out.println(arr[5]);  // 인덱스 사용시 주의해야 된다


        // for문으로 배열 탐색 (현업에서는 오류 때문에 잘 사용하지 않음)
        for (int i = 0; i < arr.length; i++) {
            // i = 0;
            // i = 1;
            // ... i = 5;
            System.out.println("인텍스: " + i + ", 값: " + arr[i]);
        }

        // 향상된 for문 (**중요** 현업에서 많이 사용)
        // arr [100] [200] [300] [400] [500]
        for (int a : arr) {
            System.out.println("값: " + a);
        }

        // 2차원 배열
//        boolean[][] board = new boolean[2][2];
        // [] []
        // [] []
        boolean[][] board = {
                {true, false},
                {false, true}
        };
        System.out.println(board[0][0]);
        System.out.println(board[0][1]);



    }
}
package chapter1.array;

public class PrefixSum {
    // 배열 과제 1: 배열의 누적합 구하기

    public static void main(String[] args) {

        int[] numbers = {2, 5, 8};
        int sum = 0;

        for (int i = 0; i < numbers.length; i++) {
            sum += numbers[i];
        }
        System.out.println("누적합: " + sum);
    }
}
package chapter1.array;

public class EvenNumberFinder {
    // 배열 과제 2: 배열 요소의 짝수만 뽑기

    public static void main(String[] args) {

        int numbers[] = {3, 4, 7, 10, 15, 20};

        System.out.print("짝수: ");
        for (int i = 0; i < numbers.length; i++) {
            if (numbers[i] % 2 == 0) {
                System.out.print(numbers[i] + " ");
            }
        }
    }
}
package chapter1.array;

public class BlackStoneFinder {
    // 배열 과제 3: 검은돌의 좌표 구하기

    public static void main(String[] args) {

        boolean[][] board = {
                {true, false},
                {false, true}
        };

        for (int i = 0; i < board.length; i++) {
            for (int j = 0; j < board[i].length; j++) {
                if (board[i][j]) {
                    System.out.println("검은돌(●) 위치: (" + i + "," + j + ")");
                }
            }
        }
    }
}

 


🚩메서드

package chapter1.method;

public class Main {

    public static void main(String[] args) {
        // 1. 객체를 객체화(소환)
        Calculator calculator = new Calculator();
        // [계산기] 계산기 = 계산기
        // [정수형] 상자 = 성수

        // 2. 메서드(함수)를 호출
        int result = calculator.sum(1, 2);
        calculator.sum1(1, 2); // void
    }
}
package chapter1.method;

public class Calculator {

    // 메서드 선언 - 두 수를 더합니다.
    int sum(int value1, int value2) {
        int result = value1 + value2;
        return result;
    }

    // void 사용
    void sum1(int value1, int value2) {
        int result = value1 + value2;
        System.out.println("결과는: " + result);
    }

}

 


뭔가 첫 번째에는 확실히 이해하지 못하고 그냥 따라친 느낌이었다면 오늘은 그래도 금방금방 이해할 수 있고 과제로 나온 실습도 풀 수 있었다. 역시 뭐든 반복이 정말 중요하구나...... 꼭 하나를 정확히 이해를 하고 넘어가야겠다 이런 생각은 버리는 게 맞는 것 같다. 전체를 훑더라도 반복을 여러 번 하는 게 정말 중요한 듯. 그러면 자동으로 이해가 된다. 하나에 집착하지 말아야지. 

내일은 git 활용 방법을 배우네 예전에 git 해 봤을 때는 그냥 막연하게 github를 만들고 올리는 것만 제대로 해 봤는데 내일 열심히 들어야지 그리고 자바 챕터 2를 들어야겠다

저작자표시 비영리 (새창열림)

'IL > TIL' 카테고리의 다른 글

20260108 [TIL] 8 - Java 객체지향 이해하기 (클래스와 객체, JVM 메모리 영역, 레퍼클래스, static, final, 인터페이스, 캡슐화, 상속, 추상화, 다형성)  (0) 2026.01.08
20260107 [TIL] - 협업을 위한 git 활용 팀 과제  (0) 2026.01.06
20260102 [TIL] 4 - 웹개발 기초 과제(맛집 관리 API 설계하기)  (0) 2026.01.02
20251231 [TIL] 3 - 웹개발 기초(백엔드 코드, 데이터베이스 맛보기, AI 활용법)  (0) 2025.12.30
20251230 [TIL] 2 - 웹개발 기초(REST API, Postman, 프로젝트 맛보기)  (0) 2025.12.30
'IL/TIL' 카테고리의 다른 글
  • 20260108 [TIL] 8 - Java 객체지향 이해하기 (클래스와 객체, JVM 메모리 영역, 레퍼클래스, static, final, 인터페이스, 캡슐화, 상속, 추상화, 다형성)
  • 20260107 [TIL] - 협업을 위한 git 활용 팀 과제
  • 20260102 [TIL] 4 - 웹개발 기초 과제(맛집 관리 API 설계하기)
  • 20251231 [TIL] 3 - 웹개발 기초(백엔드 코드, 데이터베이스 맛보기, AI 활용법)
견지
견지
개발로 개발하는지 새발로 개발하는지 내가 개인 건지 새인 건지 사람인 건지
  • 견지
    개발새발
    견지
  • 전체
    오늘
    어제
    • 분류 전체보기 (20)
      • ... (0)
      • IL (20)
        • TIL (16)
        • WIL (4)
        • MIL (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • Github
  • 공지사항

  • 인기 글

  • 태그

    CSS
    oracle
    git
    java
    HTML
    JSP
    DB
    JavaScript
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
견지
20260105 [TIL] 5 - Java 기초 문법(변수, 입출력, 연산자, 조건문, 반복문, 배열, 메서드)
상단으로

티스토리툴바