Java 조건문, 반복문

Yunsung·2024년 12월 28일
post-thumbnail

1. 반복문(For, While, Do-While)

공통 특징:

  • 문장 또는 문장 블록을 반복 실행하는데 사용.
  • 조건식을 기준으로 반복을 제어.
  • for 문은 반복 횟수를 명확히 알 때 주로 사용.
  • while 문은 조건을 기반으로 반복할 때 적합.
  • do-while 문은 블록이 최소 한 번 실행되는 것을 보장.

For문

초기화, 조건식, 증감식 그리고 수행할 블럭{} 또는 문장으로 구성

  • 문법

    for (초기화; 조건식; 증감식) {
    	// 조건식이 true일 때 수행될 문장들을 적는다.
    }
  • 1부터 사용자가 입력한 값까지의 합을 구하는 메서드

    public int sumOneToArg(int end) {
       int sum = 0;
       for (int i = 1; i <= end; i++) {
           sum += i;
       }
       return sum;
    }
    
    // end = 10 일 경우 출력 결과
    55

    sumOneToArg(10) 출력 결과

    55
  • ASCII 코드 문자 출력

    public void ascii(char start, char end) {
       for (char i = start; i <= end; i++) {
           System.out.printf("%c \t", i);
       }
    }

    ascii(A, E) 출력 결과

    A 	B 	C 	D 	E 

While문

조건식과 수행할 블럭{} 또는 문장으로 구성(초기화를 미리 해야한다. 전역변수로)

  • 문법

    while (조건식){
    	// 조건식의 연산결과가 true일 때 수행될 문장들을 적는다.
    }
  • While을 사용해 숫자 출력

    public void printNumbers(int start, int end) {
       while (start <= end) {
           System.out.println(start);
           start++;
       }
    }

    printNumbers(1, 5) 출력 결과

    1
    2
    3
    4
    5

Do-While문

블럭{}을 먼저 수행한 다음에 조건식을 계산한다.
블럭{}이 최소한 1번 이상 수행될 것을 보장한다.
즉, 조건식이 true일 경우 do문장 실행하고 false일 경우 종료한다.

  • Do-While 최소 한 번 실행

    public void executeAtLeastOnce() {
       int count = 0;
       do {
           System.out.println("This will run at least once.");
           count++;
       } while (count < 1);
    }
    

    executeAtLeastOnce(); 출력 결과

    This will run at least once.


2. 조건문 (If, Switch)

If문

  • 조건식 결과가 true일 경우 해당 블록 실행.

  • 형태: if, if-else, if-else if.

  • if문 안에 또 다른 if문을 중첩해서 넣을 수 있다.

  • 큰 수 반환 메서드

    // a가 b보다 크다면 a를 반환, 그렇지 않다면 b를 반환.
    public int checkMaxNumber(int a, int b) {
       if (a > b) {
           return a; // a가 더 크다면 a 반환
       } else {
           return b; // 그렇지 않다면 b 반환
       }
    }

    checkMaxNumber(5, 3); 출력 결과

    5

Switch문

  • 조건식 결과에 따라 특정 case 실행.

  • break 문으로 종료를 명시해야함!!

  • default는 어떤 case도 해당하지 않을 경우 실행.

  • switch문 안에 또 다른 switch문을 중첩해서 넣을 수 있다.

  • 사칙연산 계산기

    public double calculate(int x, char operator, int y) {
       double result = 0.0;
       switch (operator) {
           case '+':
               result = x + y;
               break;
           case '-':
               result = x - y;
               break;
           case '*':
               result = x * y;
               break;
           case '/':
               result = (y != 0) ? (x / (double) y) : 0.0;
               break;
           default:
               System.out.println("사칙연산만 가능합니다.");
       }
       return result;
    }

    calculate(5, +, 3) 출력 결과

    8


조건문에서 자주 사용하는 equals()와 ==의 차이점.

equals() (동등성 비교)

  • 비교 대상: 객체의 내용(값)을 비교.

  • 동작 방식: 두 객체가 논리적으로 동일한 값을 가지고 있는지 확인.

    String str1 = "hello";
    String str2 = "hello";
    String str3 = new String("hello");
    
    System.out.println(str1.equals(str2)); // true (값이 같음)
    System.out.println(str1.equals(str3)); // true (값이 같음)

== (동일성 비교)

  • 비교 대상: 객체의 참조(Reference)를 비교

  • 동작 방식: 두 객체가 같은 메모리 주소를 가리키고 있는지를 확인.

    String str1 = "hello";
    String str2 = "hello";
    String str3 = new String("hello");
    
    System.out.println(str1 == str2); // true (리터럴 풀에서 같은 객체를 참조)
    System.out.println(str1 == str3); // false (str3은 새로운 객체 생성)
profile
풀스택 개발자로서의 도전을 하는 중입니다. 많은 응원 부탁드립니다!!😁

0개의 댓글