본문 바로가기
공부/자바

조건문과 반복문

by xladmt 2024. 5. 25.

조건문

if문

  • 자바에서 조건식의 결과는 반드시 true 혹은 false 이어햐 한다는 사실!
if(0) { ... } // 결과가 true 혹은 false가 아니기 때문에 에러 발생!

 

switch문

  • switch문의 제약조건
1. switch문의 조건식 결과는 정수 또는 문자열이어야 한다.
2. case문의 값은 정수 상수만 가능하며, 중복되지 않아야 한다.

 

예)

int num, result;
final int ONE = 1;
num = 0;
result = 1;

switch (result){
	case '1':     // OK. 문자 상수 (정수 상수 49와 동일)
    case ONE:     // OK. 정수 상수
    case "YES":   // OK. 문자열 상수. (JDK 1.7부터 허용)
    case num:     // 에러. 변수는 불가
    case 1.0:     // 에러. 실수도 불가
    	...
}

=> 변수나 실수 리터럴은 case문의 값으로 적합하지 않다.

 

예제 4-7)

System.out.print("가위(1), 바위(2), 보(3) 중 하나를 입력하세요>");
        
Scanner sc = new Scanner(System.in);
int user = sc.nextInt();
int com = (int)(Math.random()*3) + 1;

switch (user-com){
	case 2: case -1:
    	System.out.println("컴퓨터가 이겼습니다.");
        break;
	case 1: case -2:
    	System.out.println("당신이 이겼습니다.");
        break;
    case 0:
        System.out.println("비겼습니다.");
        break;
}

* Math.random() 함수 이해하기

=> 코드 해설

컴퓨터 vs 유저 가위바위보 경우의 수

  가위(1) 바위(2) 보(3)
가위(1) 무승부 컴승 유저승
바위(2) 유저승 무승부 컴승
보(3) 컴승 유저승 무승부

 

user에서 com의 값을 빼면, 아래의 표와 같은 결과를 얻는다.

  가위(1) 바위(2) 보(3)
가위(1) 0 -1 -2
바위(2) 1 0 -1
보(3) 2 1 0

무승부는 0, 컴승은 -1과 2, 유저승은 1, -2 

 

 

반복문

for문

  • for문에는 초기화, 조건식, 증감식에 둘 이상의 변수도 작성할 수 있다.
for(int i=1, j=10; i<=10; i++, j--) { ... }

-> i는 1부터 10까지 1씩 증가하고, j는 10부터 1씩 감소한다.

 

  •  초기화, 조건식, 증감식 이 세 가지 요소는 필요하지 않으면 생략할 수 있으며, 심지어 모두 생략하는 것도 가능하다.
for(;;){ ... } // 초기화, 조건식, 증감식 모두 생략. 조건식은 참이 된다.

-> 조건식이 생략된 경우, 참(true)으로 간주되어 무한 반복문이 된다. 대신 블럭{} 안에 if문을 넣어서 특정 조건을 만족하면 for문을 빠져 나오게 해야 한다.

'공부 > 자바' 카테고리의 다른 글

객체 지향 프로그래밍(OOP)  (0) 2024.05.28
배열 선언과 초기화  (0) 2024.05.26
연산자  (0) 2024.05.24
상수와 리터럴  (0) 2024.05.22
변수와 자료형  (2) 2024.05.22