728x90
✓ switch의 형식
switch(조건문) {
case value1:
실행문1;
break;
case value2:
실행문2;
break;
...
default: // 해당 변수가 없을 경우
실행문D;
}
이때 만약 case마다 break가 없다면 해당 case 이후 다음 case가 연달아서 실행되게 된다.
✓ 반복문
📚 for문
// for (초기화식; 조건식; 증감식) {}
for (int i = 1; i <= 100; i++) {
sum = sum+i;
}
초기화식은 없을 수도 있고 둘 이상 있을 수도 있다.
증감식 또한 둘 이상 있을 수 있으며 둘 이상 있을 경우 쉼표로 구분한다.
📚 while문
조건식이 true일 경우 계속해서 반복, false일 경우 종료
(Kopfgesteuerte Schleife)
📚 do-while문
while문은 시작할 때부터 조건식을 검사하지만 do-while문은 일단 실행문을 실행 후 실행결과에 따라 조건식을 검사한다
(Fußgesteuerte Schleife)
// while문
while (조건식) {
실행문
}
// do-while문
do {
실행문
} while (조건식)
✅ 연습문제 답 비교
① 연습문제 3번
나의 해결방법:
int num1 = (int) (Math.random() * 6) + 1;
int num2 = (int) (Math.random() * 6) + 1;
System.out.printf("(%1d, %2d)", num1, num2);
while(num1 + num2 != 5) {
num1 = (int) (Math.random() * 6) + 1;
num2 = (int) (Math.random() * 6) + 1;
System.out.printf("(%1d, %2d)", num1, num2);
}
답안지의 해결방법:
while(true) {
int num1 = (int) (Math.random() * 6) + 1;
int num2 = (int) (Math.random() * 6) + 1;
System.out.printf("(%1d, %2d)", num1, num2);
if ((num1 + num2) == 5) {
break;
}
}
답안지의 해결방법은 조건을 더 빨리 만족할 수 있지만 무한 반복문을 사용하기 때문에 종료 조건이 명확하지 않을 시 위험할 수 있다.
나의 해결방법은 처음부터 조건을 만족하는 경우까지 반복하므로 조건을 만족하는 케이스가 더 오래걸릴 수 있지만, 반복문 진입 전에 초기화하여 종료 조건이 명확하게 주어지므로 코드의 가독성이 좋다.
② 연습문제 5, 6번
/*
연습문제 5
*
**
***
****
출력하기
*/
for(int i = 1; i <= 4; i++) {
for(int j = 1; j <= i; j++) {
System.out.print("*");
}
System.out.println();
}
/*
연습문제 6
*
**
***
****
출력하기
*/
for(int i = 1; i <= 4; i++) {
for(int j=4; j >= 1; j--) {
if (j > i) {
System.out.print(" ");
} else {
System.out.print("*");
}
}
System.out.println();
}
③ 연습문제 7번
나의 해결방법 (if문):
boolean run = true;
int balance = 0;
Scanner scanner = new Scanner(System.in);
int sum = 0;
while(run) {
System.out.println("-----------------------------------");
System.out.println("1. 예금 | 2. 출금 | 3. 잔고 | 4. 종료");
System.out.println("-----------------------------------");
System.out.print("선택> ");
String num = scanner.nextLine();
if (num.equals("1")) {
System.out.print("예금액> ");
int money = Integer.parseInt(scanner.nextLine());
sum += money;
} else if (num.equals("2")) {
System.out.print("출금액> ");
int money = Integer.parseInt(scanner.nextLine());
sum -= money;
} else if (num.equals("3")) {
System.out.println("잔고> " + sum);
} else {
break;
}
System.out.println();
}
System.out.println();
System.out.println("프로그램 종료");
답안지의 해결방법(switch문):
boolean run = true;
int balance = 0;
Scanner scanner = new Scanner(System.in);
while(run) {
System.out.println("-----------------------------------");
System.out.println("1. 예금 | 2. 출금 | 3. 잔고 | 4. 종료");
System.out.println("-----------------------------------");
System.out.print("선택> ");
int menuNum = Integer.parseInt(scanner.nextLine());
switch(menuNum) {
case 1:
System.out.print("예금액> ");
balance += Integer.parseInt(scanner.nextLine());
break;
case 2:
System.out.print("출금액> ");
balance -= Integer.parseInt(scanner.nextLine());
break;
case 3:
System.out.print("잔고> ");
System.out.println(balance);
break;
case 4:
run = false;
break;
}
System.out.println();
}
System.out.println("프로그램 종료");
반응형
'컴퓨터 & 코딩 > Java' 카테고리의 다른 글
[혼공학습단 10기][혼공자] 객체 지향 프로그래밍 (0) | 2023.07.05 |
---|---|
[혼공학습단 10기][혼공자] 참조 타입과 참조 변수, 배열, 열거타입 (0) | 2023.06.30 |
[혼공학습단 10기][혼공자] 연산자 (0) | 2023.06.29 |
[혼공학습단 10기][혼공자] 변수와 시스템 입출력 (0) | 2023.06.29 |
[혼공학습단 10기][혼공자] 타입 변환 (0) | 2023.06.28 |