[Java] 조건문, 반복문, 배열
1. if-else 문
- 조건식: if-else 문에서 수식으로 표현되는 조건
예제 3-1 짝수와 홀수 구별하기
import java.util.Scanner;
public class Practice {
public static void main(String[] args) {
int number;
Scanner sc = new Scanner(System.in);
System.out.print("정수를 입력하시오: ");
number = sc.nextInt();
if (number % 2 == 0) {
System.out.println("입력된 정수는 짝수입니다.");
}
else {
System.out.println("입력된 정수는 홀수입니다.");
}
}
}
다중 if-else 문
import java.util.Scanner;
public class Practice {
public static void main(String[] args) {
System.out.print("정수를 입력하시오: ");
Scanner sc = new Scanner(System.in);
int number = sc.nextInt();
if (number == 0) {
System.out.println("영입니다.");
}
else if (number < 0) {
System.out.println("음수입니다.");
}
else {
System.out.println("양수입니다.");
}
}
}
예제 3-2 성적 처리 예제
import java.util.Scanner;
public class Practice {
public static void main(String[] args) {
System.out.print("성적을 입력하시오: ");
Scanner sc = new Scanner(System.in);
long score = sc.nextInt();
if (score >= 90) {
System.out.println("학점 A");
}
else if (score >= 80) {
System.out.println("학점 B");
}
else if (score >= 70) {
System.out.println("학점 C");
}
else if (score >= 60) {
System.out.println("학점 D");
}
else {
System.out.println("학점 F");
}
}
}
도전문제
import java.util.Scanner;
public class Practice {
public static void main(String[] args) {
System.out.print("성적을 입력하시오: ");
Scanner sc = new Scanner(System.in);
long score = sc.nextInt();
if (score >= 95) {
System.out.println("학점 A+");
}
else if (score >= 90) {
System.out.println("학점 A0");
}
else if (score >= 85) {
System.out.println("학점 B+");
}
else if (score >= 80) {
System.out.println("학점 B0");
}
else if (score >= 75) {
System.out.println("학점 C+");
}
else if (score >= 70) {
System.out.println("학점 C0");
}
else if (score >= 65) {
System.out.println("학점 D+");
}
else if (score >= 60) {
System.out.println("학점 D0");
}
else if (score >= 55) {
System.out.println("학점 E+");
}
else if (score >= 50) {
System.out.println("학점 E0");
}
else {
System.out.println("학점 F");
}
}
}
예제 3-3 가위, 바위, 보 게임
import java.util.*;
public class Practice {
public static void main(String[] args) {
System.out.print("가위(0), 바위(1), 보(2): ");
Scanner sc = new Scanner(System.in);
short user = sc.nextShort();
short computer = (short) (Math.random() * 3);
if (user == computer) {
System.out.print("인간과 컴퓨터가 비겼음");
}
else if (user == (computer + 1) % 3) {
System.out.print("인간: " + user + " 컴퓨터: " + computer + " 인간승리");
}
else {
System.out.print("인간: " + user + " 컴퓨터: " + computer + " 컴퓨터 승리");
}
}
}
2. switch 문
- if-else 문은 가능한 실행 경로가 두 개인 반면, switch 문은 가능한 실행 경로가 여러 개다.
- 제어식의 값과 일치하는 case 절 안의 문장이 실행된다.
- break 문에 도달하면 switch 문을 빠져나간다.
- 만약 어느 것에도 해당되지 않는다면 default 아래의 문장들이 실행된다.
예제 3-4 성적을 학점으로 변환하는 프로그램2
import java.util.Scanner;
public class Practice {
public static void main(String[] args) {
System.out.print("성적을 입력하시오: ");
Scanner sc = new Scanner(System.in);
int score = sc.nextInt();
char grade;
score /= 10;
switch (score) {
case 10: grade = 'A'; break;
case 9: grade = 'B'; break;
case 8: grade = 'C'; break;
case 7: grade = 'D'; break;
case 6: grade = 'E'; break;
default: grade = 'F'; break;
}
System.out.print("학점: " + grade);
}
}
switch 문에 문자열 사용
- swith 문의 제어식으로 String 객체를 사용하여 문자열을 분류할 수 있다.(java 7)
예제 3-5 피자의 종류에 따른 가격 출력
import java.util.Scanner;
public class Practice {
public static void main(String[] args) {
System.out.print("피자의 종류를 입력하시오: ");
Scanner sc = new Scanner(System.in);
String pizza = sc.next();
int pizzaPrice;
switch (pizza) {
case "콤비네이션": pizzaPrice = 20000; break;
case "슈퍼슈프림": pizzaPrice = 20000; break;
case "포테이토": pizzaPrice = 15000; break;
case "쉬림프": pizzaPrice = 25000; break;
default: pizzaPrice = 0;
}
System.out.println("피자 " + pizza + "의 가격: " + pizzaPrice);
}
}
향상된 switch 문
- 화살표를 사용하여 switch 문을 작성할 수 있다.(java 12)