switch case에서 하나의 변수나 수식에 대한 다양한 조건을 검사할 때 사용
ex1) 숫자를 입력받아 홀수와 짝수 구분
Scanner sc = new Scanner(System.in);
System.out.println("정수 입력");
int a = sc.nextInt();
a = a%2;
switch(a) {
case 0 : System.out.println("짝수");
break;
case 1 : System.out.println("홀수");
break;
}
단 이렇게 했을 때 음수가 나올 때는 결과값이 제대로 나오지 않는다.
System.out.println("정수 입력");
int a = sc.nextInt();
a = a%2;
switch(a) {
case 0 : System.out.println("짝수");
break;
case 1, -1 : System.out.println("홀수");
break;
default : System.out.println("다시 입력");
}
ex2) 점수를 입력 받아 학점 계산
90점이상 A, 80점 이상 B, 70점 이상, C, 60점 이상 D, 60점 미만은 F로 표시
System.out.println("점수 입력");
int score = sc.nextInt();
score = score/10;
switch(score) {
case 9 : System.out.println("A");
break;
case 8 : System.out.println("B");
break;
case 7 : System.out.println("C");
break;
case 6 : System.out.println("D");
break;
default : System.out.println("F");
}
또는
System.out.println("점수 입력");
int score = sc.nextInt();
score = score/10;
String grade = "?";
switch(score) {
case 10, 9 : grade = "A";
break;
case 8 : grade = "B";
break;
case 7 : grade = "C";
break;
case 6 : grade = "D";
break;
case 5,4,3,2,1 : grade = "F";
break;
default : System.out.println("점수를 제대로 입력");
}
System.out.println("학점은 " + grade);
if문와 switch문
System.out.println("점수 입력");
int score = sc.nextInt();
String grade = "?";
if ( (score < 0 ) || (score > 100)) {
System.out.println("점수를 잘못 입력");
} else {
switch(score/10) {
case 10, 9 : grade = "A";
break;
case 8 : grade = "B";
break;
case 7 : grade = "C";
break;
case 6 : grade = "D";
break;
default : grade = "F";
}
System.out.println("학점은 " + grade);
}
반복문
프로그램 내에서 동일한 명령을 지정 횟수만큼 반복하여 수행하도록 제어하는 명령.(코딩을 줄이기 위해서)
예를 들어 안녕하세요를 n번 출력하겠다고 한다면, n번의 작으면 복붙이 가능해질테지만 n번이 몇 만번이라면?
*반복문 작성 규칙
1) 초기화변수 : 반복을 시작하는 값을 지정해 놓은 변수
2) 조건식 : 반복횟수를 정함. 조건이 만족할 때 까지 반복 수행, 조건이 만족하면 계속해서 반복 수행
3) 증감연산자 : 반복횟수가 순차적으로 늘어나거나 줄어들어야하기 때문
※ 증감연산자 하나씩 순차적으로 증가, 감소시키는 연산자
단항으로 이루어진 증감 연산자 : a++, ++a, a--, --a,
대입연산자 a = a +1 또는 a += 1
*while문 반복 횟수를 모르거나 무한 반복을 시켜야 하는 경우 주로 사용.
형식 : 초기화변수 while(조건식) { 반복할 내용; 증감연산자; }
ex3)
int i = 1; //초기화변수
while (i <= 5) {
System.out.println("안녕하세요");//반복할 내용
i++; //증감연산자 // i = i + 1;
}
ex4)
int num = 1;
int sum = 0;
while(num<=10) {
sum += num; //sum = num + num;
num++;
}
System.out.println("1부터 10까지 합 " + sum);
ex5)
int num = 1;
while(num<=10) {
int sum = 0; // 지역 변수
System.out.println("num 변수 " + num);
sum += num;
num++;
}
변수를 어디에 두느냐에 따라서 결과가 변할 수 있다.
ex6) while문을 사용 1부터 50까지 더하는 프로그램
int num = 1;
int sum = 0;
while(num<=50) {
sum += num;
num ++;
}
System.out.println(sum);
*무한 반복. 무한으로 정수값 입력 받기
초기화변수와 증감연산자가 없
int i;
while (true) {
System.out.println("정수 입력");
i = sc.nextInt();
System.out.println(i);
}
ex7) 입력받은 값을 더하기
int i;
int sum = 0;
while (true) {
System.out.println("정수 입력");
i = sc.nextInt();
System.out.println(i);
sum += i;
System.out.println(sum);
}
ex8) 입력 받은 값이 0일 때 중단
int i;
int sum = 0;
while (true) {
System.out.println("정수 입력, 종료하려면 0을 입력");
i = sc.nextInt();
System.out.println(i);
if ( i == 0) {
break;// 반복을 멈출 때 사용하는 키워드
}
sum += i;
System.out.println(sum);
}
반복문은 if break를 이용해서 멈춰야함.
ex9) while을 이용해서 구구단 2단만 출력
int i = 2;
int a = 1;
while(a<=9) {
System.out.println(a);
System.out.println(i * a);
a++;
}
ex10) 키보드로 입력 받아 구구단 출력
System.out.println("구하고자하는 몇 단?(1~9)");
int a = sc.nextInt();
int b = 1;
while(b<=9) {
System.out.println(a * b);
b ++;
}
*중첩 while문
while (true) {
System.out.println("구하고자하는 몇 단?(1~9)");
int a = sc.nextInt();
int b = 1;
while(b<=9) {
System.out.println(a * b);
b ++;
}}
ex11) 0이 입력되면 멈추게
while (true) {
System.out.println("구하고자하는 몇 단?(1~9)");
int a = sc.nextInt();
int b = 1;
if (a==0) {break;}
while(b<=9) {
System.out.println(a * b);
b ++;
}
}
'KDT > Java' 카테고리의 다른 글
231116 Java (0) | 2023.11.17 |
---|---|
231115 Java (0) | 2023.11.17 |
231109 Java - 조건문3 (0) | 2023.11.09 |
231108 Java - 탐욕 알고리즘, 조건문 2 (0) | 2023.11.08 |
231106 Java - 연산자 2, 조건문 1 (0) | 2023.11.06 |