조건문
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 |