KDT/Java

231113 Java

001cloudid 2023. 11. 13. 12:49
728x90

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;

}

ex3 결과
그림 1. ex3 결과

ex4)

int num = 1;

int sum = 0;

while(num<=10) {

sum += num; //sum = num + num;

num++;

}

System.out.println("1부터 10까지 합 " + sum);

ex4 결과
그림 2. ex4 결과

 

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);

ex6
그림 3. ex6 결과

*무한 반복. 무한으로 정수값 입력 받기

초기화변수와 증감연산자가 없

int i;

while (true) {

System.out.println("정수 입력");

i = sc.nextInt();

System.out.println(i);

}

무한 반복
그림 4. 무한반복

ex7) 입력받은 값을 더하기

int i;

int sum = 0;

while (true) {

System.out.println("정수 입력");

i = sc.nextInt();

System.out.println(i);

sum += i;

System.out.println(sum);

}

ex7 결과
그림 5. ex7 결과

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 ++;

}

 

ex10 결과
그림 6. ex10 결과

*중첩 while문

while (true) {

System.out.println("구하고자하는 몇 단?(1~9)");

int a = sc.nextInt();

int b = 1;

while(b<=9) {

System.out.println(a * b);

b ++;

}}

중첩 while문
그림 7. 중첩 while 문 결과

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 ++;

}

}

ex11 결과
그림 8. ex11 결과

728x90

'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