소스를 그냥올리는것보다 더 의미있는 소스를 포스팅하는게 좋을거같아 다른양식으로 더 올려볼려한다
while문
while문 이해하기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public static void main(String[] args) {
/*
* 출력예)1
* 2
* ...
* 10
*
*/
int a = 1;
while(a<=10)
{
System.out.print(a++);
}
System.out.println();
a = 11;
do
{
System.out.println(a++);
}while(a<=10);
}
1
2
12345678910
11
-> 이것을 보면 while문은 조건이참일때까지 반복 do while문은 무조건 한번실행후, while조건에 만족할때까지 반복한다.
점수 학점 프로그램
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
public static void main(String[] args) {
/* 문제) 점수를 입력받아 80점 이상이면 합격메시지를 그렇지
* 않으면 불합격 메시지를 출력하는 작업을 반복하다가
* 0~100점 이외의 점수가 입력되면 종료하는 프로그램
* 입.출력예) 점수를 입력하세요. : 50
* 죄송합니다. 불합격입니다.
* 점수를 입력하세요 : 95
* 축하합니다. 합격입니다.
* 점수를 입력하세요. : 101
*/
Scanner scn= new Scanner(System.in);
int jumsu =0;
System.out.print("점수를 입력하세요. :");
jumsu = scn.nextInt();
while(jumsu >=0 && jumsu <=100) //점수가 0~100까지의 범위
//다른범위일경우 while문 빠져나감
{
if(jumsu >=80)
{
System.out.println("축하합니다. 합격입니다.");
}
else
{
System.out.println("죄송합니다.불합격입니다.");
}
System.out.println("점수를 입력하세요. :");
jumsu= scn.nextInt();
}
}
1
2
3
4
5
6
7
점수를 입력하세요. :29
죄송합니다.불합격입니다.
점수를 입력하세요. :
89
축하합니다. 합격입니다.
점수를 입력하세요. :
-2
while 빠져나오기
무한루프처리, break하는법
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public static void main(String[] args) {
//무한루프로 처리해서 break하는방법
Scanner scn= new Scanner(System.in);
int jumsu =0;
while(true) // 무한루프 돌릴려면 조건식 true만 넣으면된다.
{
System.out.print("점수를 입력하세요. : ");
jumsu = scn.nextInt();
if(jumsu <0 || jumsu > 100)
{
System.out.println("점수가 잘못입력되었습니다.");
break; //감싸고있는 첫번째 반복문을 빠져나간다.
}
if(jumsu >= 80)
{
System.out.println("축하합니다.합격입니다.");
}
else
{
System.out.println("죄송합니다.불합격입니다.");
continue; //아래코드실행안하고 감싸고있는 첫번째 반복문 으로간다.
//만약 for문으로 가면 ++부터 실행한다.
}
}
}
1
2
3
4
5
6
점수를 입력하세요. : 80
축하합니다.합격입니다.
점수를 입력하세요. : 27
죄송합니다.불합격입니다.
점수를 입력하세요. : -2
점수가 잘못입력되었습니다.
->이문제는 break 와 continue를 사용해서
반복문 조건을 빠져나오는 제어문이다.
break : 나를 감싸는 첫째의 반복문을 빠져나오는것이다. continue : 나를 감싸는 첫째의 반복문으로 돌아가는것이다.
이두개의 차이점을 잘알고 사용을하자.
무한루프 처리는 while(true) 조건이나, while(참조건 ex) 1=1;) 사용해 처리할수있다.
홀수합구하기 프로그램(while문, break문사용)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
public static void main(String[] args) {
/* 문제) 정수를 계속 입력 받다가 0이 입력되면 입력된 수중
* 홀수의 합과 평균을 출력하는 프로그램
* 입력예)5 8 17 6 31 0
* 출력예)홀수의 합 = 53
* 홀수의 평균 = 17
// a선언, 0이면 빠져나오기, 홀수합선언,
*/
Scanner scn= new Scanner(System.in);
int a;
int hab=0;
int count =0;
while(true)
{
a = scn.nextInt();
if(a == 0)
{
break;
}
if(a % 2 == 0) //홀수이면
{
continue; // continue 반복문의 맨앞으로 간다
}
hab += a;
count ++;
}
System.out.printf("홀수의 합 = %d\n",hab);
System.out.printf("홀수의 평균 = %d\n",hab/count);
}
1
2
3
3 1 2 4 5 6 2 7 0
홀수의 합 = 16
홀수의 평균 = 4
do ~while문
홀수합구하기 프로그램(while문, break문사용)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public static void main(String[] args) {
//do while문제
Scanner scn= new Scanner(System.in);
int a;
int hab=0;
int count =0;
do
{
a = scn.nextInt();
if(a % 2 != 0) //홀수이면
{
hab += a;
count ++;
}
}while(a != 0);
System.out.printf("홀수의 합 = %d\n",hab);
System.out.printf("홀수의 평균 = %d\n",hab/count);
}
1
2
3
3 1 2 4 5 6 2 7 0
홀수의 합 = 16
홀수의 평균 = 4
do while문의 생김새는 대략
do { 조건식 }while(조건식)이다.
do 먼저 한번실행하고 while문의 조건이 아닐때까지 반복한다.
메시지출력 프로그램
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
public static void main(String[] args) {
/* 문제) 아래와 같이 메시지를 출력하고 숫자를 입력받아 선택한
* 번호에 해당하는 메시지를 출력하는 작업을 반복하다가 4가
* 입력되면 메시지 출력후 종료하는 프로그램 작성.
* (1~4 이외의 숫자가 입력되면 "잘못 선택하였습니다."
* 라고 출력
* 입출력예)
* 1. 입력하기
* 2. 출력하기
* 3. 삭제하기
* 4. 끝내기
* 작업할 번호를 선택하세요. : 5
*
* 잘못 선택하였습니다.
* 1. 입력하기
* 2. 출력하기
* 3. 삭제하기
* 4. 끝내기
* 작업할 번호를 선택하세요. : 4
*
* 끝내기를 선택하셨습니다.
* */
Scanner scn= new Scanner(System.in);
int input = 0;
do
{
System.out.println("1.입력하기");
System.out.println("2.출력하기");
System.out.println("3.삭제하기");
System.out.println("4.끝내기");
System.out.print("작업할 번호를 선택하세요. :");
input = scn.nextInt();
switch(input)
{
case 1: System.out.println("입력하기를 선택하셨습니다.");
break;
case 2: System.out.println("출력하기를 선택하셨습니다.");
break;
case 3: System.out.println("삭제하기를 선택하셨습니다.");
break;
case 4: System.out.println("끝내기를 선택하셨습니다.");
break;
default:
System.out.println("잘못입력하셨습니다.");
}
}while(input != 4);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
1.입력하기
2.출력하기
3.삭제하기
4.끝내기
작업할 번호를 선택하세요. :3
삭제하기를 선택하셨습니다.
1.입력하기
2.출력하기
3.삭제하기
4.끝내기
작업할 번호를 선택하세요. :4
끝내기를 선택하셨습니다.
switch 문으로 위문제 바꿔보기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
public static void main(String[] args) {
int input;
Scanner scn= new Scanner(System.in);
while(true)
{
System.out.println("1.입력하기");
System.out.println("2.출력하기");
System.out.println("3.삭제하기");
System.out.println("4.끝내기");
System.out.print("작업할 번호를 선택하세요. :");
input = scn.nextInt();
switch(input)
{
case 1: System.out.println("입력하기를 선택하셨습니다.");
break;
case 2: System.out.println("출력하기를 선택하셨습니다.");
break;
case 3: System.out.println("삭제하기를 선택하셨습니다.");
break;
case 4: System.out.println("끝내기를 선택하셨습니다.");
break;
default:
System.out.println("잘못입력하셨습니다.");
}
if(input == 4)
{
break;
}
}
}
-> break를 사용하여 무한루프에서 예외처리를 해주었다.
이렇게 반복문을 연습해보았다.
정리하자면 while 문 , do while문 두가지를 사용해보았다.
두가지의 반복문에서 do while문은 우선실행하고 조건을 검색한다는 특이사항이있다.
또한 break문과 continue문을사용하여 반복조건에서 예외처리를 해줄수있다는것도 알게되었다.
이상 이번 포스팅 끄읏!~