Java/Java 문법

Java 문법 3 (조건문)

열심히 해 2024. 9. 3. 16:20
  • 조건문 : 특정 조건에 따라 다른 연산을 수행. 
      “물이 끓으면 강불에서 약불로 줄여주세요.”
      “물이 끓으면”이라는 조건이 만족하면 “약불로 줄이는” 연산을 수행하는 조건문
  • 반복문 : 특정 조건에 따라 반복해서 동일한 연산을 수행
      “하얗게 색이 변하기 전까지 계속 저어주세요.”
      “하얗게 색이 변하기 전” 조건이 만족할 동안 “저어주세요” 연산을 반복하는 반복문

 

If문

1. if문 : if () {}

()에 true 또는 false값이 들어가고, true면 내부 로직인 {}을 실행, false면 실행하지 않음.

2. if else문 : if(){} else{}

위와 비슷하나 ()에 false값이 들어가면 else 이후의 로직인 {}가 실행됨.

 

3. if else if else문 : if(1){첫 번째 로직} else if (2){두 번쨰 로직} else{세 번째 로직}, 무한히 확장 가능.

1이 참이면 첫 번째 로직만 실행되고 끝.

1이 거짓, 2가 참이면 두 번째 로직만 실행되고 끝.

1과 2가 거짓이면 세 번째 로직이 실행되고 끝.

*괄호() 안에 조건 여러 개를 지정하여 조건문을 수행 가능. 즉 여러 피연산자 사용 가능.

4. 중첩 if문 : if문 안에 if문

 

입력과 출력

 

1. 입력

import java.util.Scanner;

public class W13 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String input = sc.next();
    }
}

java.util에서 제공하는 Scanner 기능을 수입한다.

변수타입은 Scanner 이름은 sc , 이것을 new Scanner(System.in)를 통해 `콘솔창에 입력한 값이 sc에 저장됨`

sc에 저장된 값을 읽는 게 sc.next 이고 이를 String 타입의 input 이라는 변수로 저장한다.
// 위와 같은 방법을 통해 콘솔창에 입력한 값을 변수로 저장하고 활용할 수 있게 된다.

 

 

2. 출력

System.out.println("이 문자를 적으셨나요?" + input);

 

 

if문과 입력을 통해 가위바위보 만들기.

 

더보기
public class W13 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        System.out.println("a 입력 : ");
        String aHand = sc.nextLine();

        System.out.println("b 입력 : ");
        String bHand = sc.nextLine();

        if (Objects.equals(aHand, "가위")) {
            if(Objects.equals(bHand, "가위")){
                System.out.println("무승부");
            } else if (Objects.equals(bHand, "바위")) {
                System.out.println("b 승리");
            } else if (Objects.equals(bHand, "보")) {
                System.out.println("a 승리");
            } else {
                System.out.println("'가위', '바위', '보' 중 하나를 입력하세요");
            }
        } else if (Objects.equals(aHand, "바위")) {
            if(Objects.equals(bHand, "가위")){
                System.out.println("a 승리");
            } else if (Objects.equals(bHand, "바위")) {
                System.out.println("무승부");
            } else if (Objects.equals(bHand, "보")) {
                System.out.println("b 승리");
            } else {
                System.out.println("'가위', '바위', '보' 중 하나를 입력하세요");
            }
        } else if (Objects.equals(aHand, "보")){
            if(Objects.equals(bHand, "가위")){
                System.out.println("b 승리");
            } else if (Objects.equals(bHand, "바위")) {
                System.out.println("a 승리");
            } else if (Objects.equals(bHand, "보")) {
                System.out.println("무승부");
            } else {
                System.out.println("'가위', '바위', '보' 중 하나를 입력하세요");
            }
        } else {System.out.println("'가위', '바위', '보' 중 하나를 입력하세요");
        }
    }
}

 

 

Switch case문

 

1. 형태 : switch(피연산자) {case(조건) : (연산)} 

    피연산자가 case에 만족하면 뒤의 연산을 수행한다.

2. `{case(조건) : (연산)}` 은 여러 개를 설정할 수 있다.
3. 각 case의 연산문 마지막에는 break;를 반드시 넣어야 한다.

4. 피연산자가 모든 case(조건)에 만족하지 않았을 대 수행할 연산을 `default : (연산)` 을 통해 명시한다. 없다면 생략 가능하다.
5. 피연산자 한 개에 대한 조건만 지원

// ()괄호 안에 있는 피연산자의 값이 case `값`과 같을 때 그 case의 `:` 뒤에 나오는 코드를 진행한다. 처음에는 넘버링의 의미를 담에 case 1, case 2 를 사용하는 줄 알았는데 그것이 아니다. 피연산자가 문자열-과일 종류 알아보기-이라면 `case "사과" : , case "포도" : ` 등의 표현도 가능하다.

 

홀수, 짝수 판별기

더보기
import java.util.Scanner;

public class W14 {
    public static void main(String[] args) {

        System.out.println("자연수 입력 : ");
        Scanner sc = new Scanner(System.in);
        int naturalNumber = sc.nextInt();

        int odd_even_number = naturalNumber%2;
        System.out.println(odd_even_number);

        switch (odd_even_number) {
            case 0:
                System.out.println("짝수입니다");
                break;
            case 1:
                System.out.println("홀수입니다");
                break;
        }
    }
}