반복제어문에는 for문과 while문이 있다.
while문은 다시 while문과 do while문으로 나눌 수 있다.
do while은 조건문이 true인지 false인지 상관없이 { }괄호 안의 명령을 한번 실행하고,
그 후에 조건문을 판별하여 true인 동안 반복한다.
do
{
반복 실행할 문장;
}while(조건문);
while은 조건문이 true일 경우만 { }괄호 안의 명령을 실행하고 반복한다.
while(조건문)
{
반복 실행할 문장;
}
항상 참이 되는 조건문 1==1이나 true를 사용하면 while반복문을 무한루프로 사용할 수 있다.
while(true)
{
반복 실행할 문장;
}
문제) while문을 이용한 프로그램
출력예) 1
2
...
10
package sample;
public class Sample
{
public static void main(String[] args)
{
int i=1 ;
while(i<=10)
{
System.out.println(i++);
}
}
}
문제) 알파벳 'A'부터 'Z'까지 출력하는 프로그램 작성
출력예) ABCDEFGHIJKLMNOPQRSTUVWXYZ
package sample;
public class Sample
{
public static void main(String[] args)
{
char a = 'A';
while(a<='Z')
{
System.out.print(a++);
}
}
}
문제) 정수 변수 num을 선언하여 1을 대입한 후
1씩 증가시키면서 10까지의 누적 합을 구하는 프로그램
while문을 이용하여 작성하고
1부터 10까지의 합과 while문이 끝난 후의 num의 값을 출력하는 프로그램
출력예) 1부터 10까지의 합 = 55
while문이 끝난 후의 num의 값 = 11
package sample;
public class Sample
{
public static void main(String[] args)
{
int num = 1, sum = 0;
while(num<=10)
{
sum += num;
num++;
}
System.out.println("1부터 10까지의 합 = " + sum);
System.out.print("while문이 끝난 후 num의 값 = " +num);
}
}
문제) 점수를 입력받아 80점 이상이면 합격메시지를
그렇지 않으면 불합격 메시지를 출력하는 작업을 반복하다가
0에서 100점 이외의 점수가 입력되면 종료하는 프로그램
입,출력예) 점수를 입력하세요. : 50
죄송합니다. 불합격입니다.
점수를 입력하세요. : 95
축하합니다. 합격입니다.
점수를 입력하세요. : 101
package sample;
import java.util.*;
public class Sample
{
public static void main(String[] args)
{
while(true)
{
Scanner scn = new Scanner(System.in);
System.out.print("점수를 입력하세요. : ");
int scr = scn.nextInt();
if( scn < 0 || scn > 100)
{
break;
}
else if( scn>=80)
{
System.out.println("축하합니다. 합격입니다.");
}
else
{
System.out.println("죄송합니다. 불합격입니다.");
}
}
}
}
문제) 정수를 계속 입력받다가 0이 입력되면
0을 제외하고 이전에 입력된 자료의 수와 합계, 평균을 출력하는 프로그램을 작성
(평균은 소수 둘째자리까지 출력)
입력예) 15 88 97 0
출력예) 입력된 자료의 개수 = 3
입력된 자료의 합계 = 200
입력된 자료의 평균 = 66.67
package sample;
import java.util.*;
public class Sample
{
public static void main(String[] args)
{
Scanner scn = new Scanner(System.in);
int num, cnt = 0, sum = 0;
while(true)
{
num = scn.nextInt();
if(num==0)
{
break;
}
sum += num;
cnt++;
}
System.out.println("입력된 자료의 개수 = " + cnt);
System.out.println("입력된 자료의 합계 = " + sum);
System.out.printf("입력된 자료의 평균 = %.2f", sum/(double)cnt);
}
}
문제) 정수를 계속 입력 받다가 0이 입력되면
입력된 수 중 홀수의 합과 평균을 출력하는 프로그램 (평균은 정수)
입력예) 5 8 17 6 31 0
출력예) 홀수의 합 = 53
홀수의 평균 = 17
package sample;
import java.util.*;
public class Sample
{
public static void main(String[] args)
{
Scanner scn = new Scanner(System.in);
int num, sum = 0, cnt = 0;
while(true)
{
num = scn.nextInt();
if(num == 0)
{
break;
}
if(num%2!=0)
{
cnt++;
sum += num;
}
}
System.out.println("홀수의 합 = " + sum);
System.out.print("홀수의 평균 = " + sum/cnt);
}
}
문제) 아래와 같이 메시지를 출력하고
숫자를 입력받아 선택한 번호에 해당하는 메시지를 출력하는 작업을 반복하다가
4가 입력되면 메시지 출력후 종료하는 프로그램 작성
(1~4 이외의 숫자가 입력되면 "잘못 선택하였습니다." 라고 출력)
입,출력예)
1. 입력하기
2. 출력하기
3. 삭제하기
4. 끝내기
작업할 번호를 선택하세요. : 2
출력하기를 선택하였습니다.
1. 입력하기
2. 출력하기
3. 삭제하기
4. 끝내기
작업할 번호를 선택하세요. : 5
잘못 선택하였습니다.
1. 입력하기
2. 출력하기
3. 삭제하기
4. 끝내기
작업할 번호를 선택하세요. : 4
끝내기를 선택하였습니다.
package sample;
import java.util.*;
public class Sample
{
public static void main(String[] args)
{
Scanner scn = new Scanner(System.in);
int num;
String menu = "";
do
{
System.out.println("1.입력하기");
System.out.println("2.출력하기");
System.out.println("3.삭제하기");
System.out.println("4.끝내기");
System.out.print("작업할 번호를 선택하세요.: ");
num = scn.nextInt();
if(num < 1 || num > 3)
{
if( num == 4)
{
break;
}
menu = "잘못";
}
else
{
if(num == 1)
{
menu = "입력하기를";
}
else if(num == 2)
{
menu = "출력하기를";
}
else if(num == 3)
{
menu = "삭제하기를";
}
}
System.out.printf("\n%s 선택하였습니다.\n\n", menu);
}while(num != 4);
System.out.print("\n끝내기를 선택하였습니다.");
}
'자바 JAVA' 카테고리의 다른 글
배열을 이용한 예제풀이 2 - 자바 기초 (0) | 2021.05.23 |
---|---|
배열을 이용한 예제풀이 ㅡ 자바 기초 (0) | 2021.05.22 |
다중 for문 이용 예제 풀이 - 자바 기초 (0) | 2021.05.19 |
for문 예제 풀이 - 자바 기초 (0) | 2021.05.15 |
삼항연산자 예제풀이 - 자바 기초 (0) | 2021.05.15 |