[혼공자바] Ch04 정리
1. 조건문: if문, switch문
1-1. 제어문(control statement)
- 실행 흐름을 개발자가 워하는 방향으로 바꿀 수 있도록 해주는 것.
- 조건문 : if문, switch문
- 반복문 : for문, while문, do-while문
1-2. 조건문(conditional statement)
- 특정 조건을 만족할 때 코드를 샐항하는 문법
- if문 : 괄호 내의 조건식이 참이면 블록 내의 문장을 실행한다.
- else문 : if문의 조건식이 거짓이면 블록 내의 문장을 실행한다. 필요 없으면 없어도 됨.
- else if문 : if문의 조건식이 거짓일 때 실행시킬 코드에 추가 조건을 걸고 싶을 때 사용한다. 필요 없으면 없어도 됨.
- switch문 : 변수의 값에 따라 실행문이 결정된다.
- if문 : 괄호 내의 조건식이 참이면 블록 내의 문장을 실행한다.
if (a > 0)
// 중괄호를 사용하지 않으면 조건식이 참일 때 한 줄만 실행
System.out.println("a는 양수입니다.");
else if ( a == 0){
System.out.println("a는 0입닌다.");
}else{
System.out.println("a는 음수입니다.");
}
switch(ch){
case 'a':
// break문이 없기 때문에 블록을 빠져나가지 않고 다음 case문으로 이동
case 'b':
System.out.println("ch는 a혹은 b입니다."); // a일 경우에도 출력됨.
break;
case 'c':
System.out.println("ch는 c입니다.");
break;
default:
System.out.println("a도 b도 c도 아닙니다.");
break; // break를 하지 않아도 이 블록을 빠져나갈 수 있음.
}
1-3. 확인문제
-
조건문의 종류
- 조건문 : if문, switch문
-
조건문을 설명한 것 중 맞는 것 O표, 틀린 것 X표 하세요.
-
if문은 조건식의 결과에 따라 실행 흐름을 달리할 수 있다.(X)
➡️ if문이 아니라 switch문
-
if문은 조건식이 true이면 블록을 실행하고 false이면 블록을 실행하지 않는다.(0)
-
if문의 블록 내부에는 또 다른 if문을 사용할 수 있다.(0)
-
switch문에서 사용할 수 있는 변수의 타입은 int만 가능하다.(x)
➡️ char 타입도 가능하다.
-
-
코드를 실행했을 때 출력되는 내용
- B입니다.
-
코드를 실행했을 때 출력되는 내용
-
우수 회원 혜택을 받으실 수 있습니다.
일반 회원 혜택을 받으실 수 있습니다.
감사합니다.
-
2. 반복문 : for문, while문, do-while문
2-1. loop
-
특정 조건을 만족하는 동안 반복해서 실행하는 문법
- for문 : 반복 횟수가 정해진 경우에 주로 사용
//for문 예시 for(int i = 0; i < n; i++) //0부터 n-1까지 i를 증가시키며 코드 실행(n회 반복)
- while문 : 반복 횟수를 모를 때 주로 사용
//while문 예시 while(true){ result *= 3; if(result >= 100) //이 조건을 만족시켜야 반복문 종료 break; }
- do-while문 : 조건 만족 여부와 상관없이 코드를 먼저 실행하고, 그 다음 루프부터 조건을 검사
//do-while문 예시 do{ printf("출력됩니다."); }while(false);//1회만 출력
2-2. 무한루프(infinite loop)
- 무한히 반복을 하고 싶거나 정해진 횟수 없이 일정한 조건을 충족하면 빠져나오게 하고 싶을 때 사용하는 것
//for문을 사용한 무한 루프
for(;;){
//반복하고 싶은 코드
}
//while문을 사용한 무한 루프
while(true){
//반복하고 싶은 코드
}
2-3. break문
- for문, while문, do-while문 내부에서 실행되면 반복을 취소한다.
//이중 for문일 때 break로 바깥쪽 for문까지 종료 예시
Outter : for(int i = 0; i < n; i++){ // 바깥 반복문에 이름(라벨) 붙이기
for(int j = 0; j < n; j++){
if(j == 1){
break Outter; // break Outter(라벨)로 바깥쪽 반복문까지 종료
}
}
}
2-4. continue문
- for문, while문, do-while문 내부에서 실행되면 증감식 또는 조건식으로 돌아간다.
//continue를 사용한 for문 예시
for(int i = 0; i < n; i++) {
if (i % 2 != 0) {
continue; // 홀수인 경우 다시 조건식으로 이동
}
}
2-5. 확인문제
-
반복문의 종류
- 반복문 : for문, while문, do-while문
-
for문을 이용해서 1~100까지 정수 중에 3의 배수의 총합을 구하는 코드 작성하기
**<코드>**코드>
public class Main { public static void main(String[] args) { int sum = 0; for(int i = 0; i <= 100; i++) { if (i % 3 == 0) { sum += i; } } System.out.println("3의 배수의 총 합 : " + sum); } }
**<결과>**결과>
-
while문과 Math.random() 메소드를 이용해서 2개의 주사위를 던졌을 때 나오는 눈을(눈1, 눈2) 형태로 출력하고, 눈의 합이 5가 아니면 계속 주사위를 던지고, 합이 5이면 실행을 멈추는 코드 작성하기
눈의 합이 5가되는 조합 (1,4), (4, 1), (2, 3), (3, 2)
**<코드>**코드>
public class Main { public static void main(String[] args) { while(true){ int num1 = (int)(Math.random() * 6) + 1; int num2 = (int)(Math.random() * 6) + 1; if (num1 + num2 != 5){ System.out.println("("+num1 + "," + num2 + ")"); }else{ System.out.println("("+num1 + "," + num2 + ")"); System.out.println("눈의 합 = 5, 프로그램 종료."); break; } } } }
**<결과>**결과>
-
중첩 for문을 이용하여 방정식 4x+5y = 60의 모든 해를 구해서 (x, y) 형태로 출력하기
단, x와 y는 10 이하의 자연수
**<코드>**코드>
public class Main { public static void main(String[] args) { for (int i = 0; i <= 10; i++){ for (int j = 0; j <= 10; j++){ if (4*i + 5*j == 60){ System.out.println("("+i + "," + j + ")"); } } } } }
**<결과>**결과>
-
for문을 이용해서 *을 출력하는 코드 작성하기(p.161 참고)
**<코드>**코드>
public class Main { public static void main(String[] args) { for (int i = 0; i < 4; i++){ for (int j = 0; j <= i; j++){ System.out.print("*"); } System.out.println(); } } }
**<결과>**결과>
-
for문을 이용해서 *을 출력하는 코드 작성하기(p.161 참고)
**<코드>**코드>
public class Main { public static void main(String[] args) { for (int i = 0; i < 4; i++){ for (int j = 0; j < 3-i; j++){ System.out.print(" "); } for (int k = 0; k < i+1; k++) { System.out.print("*"); } System.out.println(); } } }
**<결과>**결과>
-
while문과 Scanner를 이용해서 키보드로 입력된 데이터로 예금, 출금, 조회, 종료 기능을 제공하는 코드를 작성하기.
(Scanner의 next() 사용)
**<코드>**코드>
import java.util.Scanner; public class Main { public static void main(String[] args) { boolean run = true; int balance = 0; Scanner scaaner = new Scanner(System.in); while(run) { System.out.println("____________________________________"); System.out.println("1.예금 | 2.출금 | 3.잔고 | 4.종료"); System.out.println("____________________________________"); System.out.print("선택> "); int choice = scaaner.nextInt(); if (choice == 4){ System.out.println("프로그램 종료"); break; } switch (choice) { case 1: System.out.print("예금액> "); int credit = scaaner.nextInt(); balance += credit; break; case 2: System.out.print("출금액> "); int withdraw = scaaner.nextInt(); balance -= withdraw; break; case 3: System.out.println("잔고>" + balance); break; } } } }
**<결과>**결과>
댓글남기기