럿고의 개발 노트

[프로그래머스] 자바 입문 > Part3. 제어문 본문

Java Note/[프로그래머스] 자바 입문(동영상 강의)

[프로그래머스] 자바 입문 > Part3. 제어문

KimSeYun 2019. 12. 20. 20:24

[프로그래머스] 자바 입문

Part3. 제어문

1. if문

if 조건문


  • 조건식의 연산 결과에 따라 블록 내부 문장 실행 여부 결정

  • 결과가 true일 경우에만 실행문이 실행

  • if문의 { }(블럭)을 생략 가능. 단, 실행문은 단 한줄만 포함

if(조건식) {
    실행문;
    실행문;
}

if-else 문


  • 조건식이 true일 경우 if블록 실행문이 실행되고, false일 경우 else블록의 실행문이 실행
if(조건문) {
    실행문;
    실행문;
} else {
    실행문;
}

if / else if / else 문


  • 처음 if문 조건식의 조건문이 true일 경우 처음 if문 블록이 실행되고, false일 경우 다음 조건식의 결과에 따라 실행

  • else if문의 수는 제한이 없지만, 많은 else if문은 실행 속도를 느리게 함

  • 마지막 else 블록은 생략 가능

if(조건문) {
    실행문;
    실행문;
} else if(조건문) {
    실행문;
} else {
    실행문;
}

예제


public class IfExam {
    public static void main(String[] args) {
        int x = 50; // 변수선언
        int y = 60; // 변수선언

        if(x < y) { // 조건부여, 조건이 맞을때만 실행
            System.out.println("x는 y보다 작습니다."); // 출력 O
        }
        if(x > y) { // 조건부여, 조건이 맞을때만 실행
            System.out.println("x는 y보다 큽니다."); // 출력 X
        }
        if(x == y) // 블럭을 안줄수도 있지만, 실행문이 한줄일때만 가능
            System.out.println("x는 y와 같습니다."); // 출력 X

        System.out.println("==================================");

        if(x == y) {
            System.out.println("x는 y와 같습니다.");
        }else { // 위의 조건이 맞지 않는다면 여기 실행문이 실행
            System.out.println("x와 y는 다릅니다.");
        }

        System.out.println("==============================");

        if(x == y) {
            System.out.println("x는 y와 같습니다.");
        }else if(x < y) { // 조건을 여러개 줄때 사용
            System.out.println("x는 y보다 작습니다.");
        }else {
            System.out.println("x는 y와 다릅니다.");
        }
    }
}

2. 논리연산자

논리연산자


  • 논리연산자는 논리곱(&&, &), 논리합(||, |), 베타적 논리합(^), 논리부정(!)연산을 수행

  • 논리 연산자의 피연산자는 boolean만 가능하며 결과값도 boolean

  • 논리곱(&&, &) : 피연산자가 모두 true일 경우에만 연산 결과가 true

  • 논리합(||, |) : 피연산자 중 하나만 true이면 연산 결과는 true

  • 베타적 논리합(^) : 피연산자가 서로 다른 값일 경우에만 true

  • 논리 부정(!) : 피연산자의 논리값을 변경

    • true -> false
    • false -> true
public class OperatorExam5 {
    public static void main(String[] args) {
        boolean b1 = true;
        boolean b2 = false;
        boolean b3 = true;

        System.out.println(b1 && b2); // true AND false => false
        System.out.println(b1 && b3); // true AND true => true
        System.out.println(b1 || b2); // true OR false => true
        System.out.println(b1 || b3); // true OR true = true
        System.out.println(b2 || b2); // false OR false = false

        int score = 68;
        if(score <= 100 && score >= 70) { // true AND false => false
            System.out.println("성공"); // 실행 X
        }else { // 위의 조건식이 false이기 때문에
            System.out.println("실패"); //실행 O
        }

        System.out.println(b1 ^ b3); // true XOR true => false
        System.out.println(b1 ^ b2); // true XOR false => true
        System.out.println(!b1); // NOT true => false
    }
}

3. 삼항연산자

삼항연산자


  • 조건식 ? 피연산자1(true) : 피연산자2(false)

  • 피연산자에는 주로 값이 오지만, 경우에 따라 연산식이 올 수도 있음

  • if문으로 변경 가능

public class OperatorExam6 {
    public static void main(String[] args) {
        int b1 = (5 > 4) ? 50 : 40; // 5 > 4 조건식이 true면 50 / false면 40
        System.out.println(b1); // 50

        b1 = (5 < 4) ? 50 : 40; // 5 > 4 조건식이 true면 50 / false면 40
        System.out.println(b1); // 50

        int b2 = 0;
        if(5 < 4) { // 위의 삼항연산자와 같은 if문
            b2 = 50;
        }else{
            b2 = 40;
        }
        System.out.println(b2); // 40
    }
}

 

4. switch문

switch문


  • switch문은 어떤 변수의 값에 따라서 문장을 실행할 수 있도록 하는 제어문
switch(변수) {
    case 값1 :
        실행문;
        break;
    case 값2 :
        실행문;
        break;
    default :
        실행문;
}
  • break문이 없다면 case를 찾았을때, switch문을 빠져나가지 않고 아래에 있는 case의 실행문을 연속해서 실행

  • JDK7이전에는 switch문 괄호안에 정수타입만 가능했지만, 그 이후 버전에서는 문자열 타입도 가능

public class SwitchExam {
    public static void main(String[] args) {
        // switch, case, default, break

        int value = 1;

        // 이 switch문은 break가 없기때문에, case를 만나면 그 뒤의 실행문을 다 실행함
        switch (value) {
        case 1:
            System.out.println("1");
        case 2:
            System.out.println("2");
        case 3:
            System.out.println("3");
        default:
            System.out.println("그 외 다른 숫자");
        }

        // 그래서 나오게 된게 break문으로, break를 사용하면 case를 만나 case의 맞는 실행문을 한 뒤 switch문을 빠져나감
        switch (value) {
        case 1:
            System.out.println("1");
            break;
        case 2:
            System.out.println("2");
            break;
        case 3:
            System.out.println("3");
            break;
        default:
            System.out.println("그 외 다른 숫자");
        }

        // JDK1.7이후에는 문자열도 가능
        String str = "A";
        switch (str) {
        case "A":
            System.out.println("A");
            break;
        case "B":
            System.out.println("B");
        }            
    }
}

5. while문

while문


  • 실행문을 반복적으로 실행하는 반복문

  • 조건문의 실행결과가 true일 동안 반복해서 실행

while(조건문) {
    실행문;
}
public class WhileExam {
    public static void main(String[] args) {
        int i = 0;

        while(i < 10) { // 저 조건이 만족할때까지 계속 반복
            //무한루프를 조심해야한다!
            System.out.println(i);
            i++; // 증감연산자, i = i + 1;

        }

        int total = 0;
        i = 1;
        while(i <= 100) { // 1 ~ 100까지의 합을 구하는 것
            total += i;
            i++;
        }
        System.out.println(total);

        while(true) { // 일부러 무한루프를 돌리는 방법
            System.out.println("hello");
        }
        // 무한루프를 만든 후, if문 같은 걸로 break를 사용해서 빠져 나오는 방법도 있음
    }
}

6. do while문

do while문


  • while문의 경우 조건이 만족하지 않는다면, 한번도 반복하지 않을 수 있음.

  • 하지만 do while문의 경우 무조건 한번은 실행

  • 입력값을 받을때 많이 사용

do {
    실행문;
} while(조건문);
import java.util.Scanner;

public class DoWhileExam {
    public static void main(String[] args) {
        // do while은 무조건 한번은 실행하는 방법(조건이 맞지 않아도)

        int value = 0;
        Scanner scan = new Scanner(System.in); // 입력을 받는 방법(키보드로부터)

        do {
            //반복할 문장들
            value = scan.nextInt(); // 입력받는 값을 value에 넣는 법
            System.out.println("입력받은 값 : " + value);
        }while(value != 10); // 입력받은 값이 10이 아니면, 계속 입력 받기

        System.out.println("반복문 종료!!");
    }
}

7. for문

for문


  • 변수초기화, 조건식, 증감식이 한줄에 모두 있음

  • 실행순서

    1. 초기화식은 최초 한번만 수행
    2. 조건식을 수행해 수행결과가 false라면 for문을 빠져나감
    3. 수행결과가 true라면 실행문을 수행
    4. 증감식 수행
    5. 2번부터 4번까지 반복적 수행
for(초기화식; 조건식; 증감식) {
    실행문;
}
public class ForExam {
    public static void main(String[] args) {
        int total = 0;
        for(int i = 1; i <= 100; i++) { // 변수; 조건식; 증감식
            total += i; // total = total + i;
        }

        System.out.println(total);

        total = 0;
        for (int i = 1; i <= 100; i++) {
            if(i % 2 != 0) {
                continue; // 아래 실행문들을 실행하지 않고 다음 반복문을 실행(즉, i값이 1 증가 후 다시 실행)
            }
            total += i;
        }
        System.out.println(total);

        total = 0;
        for (int i = 1; i <= 100; i++) {
            total += i;
            if(i == 50) { // i가 50이면 반복문을 아예 빠져나오기
                break;
            }
        }
        System.out.println(total);
    }
}

※ 출처

[프로그래머스] 자바 입문

Comments