반복문
- 반복해서 실행할 때 사용하는 문장.
- 반복문의 종류 : while문, do~while문, for문
while 반복문
- 조건식을 비교하여 참인 경우 게속해서 반복 실행문을 실행하고,
조건식이 거짓인 경우에는 반복문을 빠져 나가는 문장.
- while 반복문은 반복문의 횟수를 알 수 없는 경우에 많이 사용됨.
반복문에는 반드시 조기식, 조건식, 증감식이 존재해야 함.
형식)
while(조건식) {
반복 실행문; //조건식 연산결과가 참(true)인 동안, 반복될 문장
}
do~while 반복문
- while문과 반대로, 블럭{}을 먼저 수행한 후에(반복 실행문을 실행하고) 조건식을 비교함
형식)
do {
반복 실행문; //조건식 연산결과가 참일 때 수행될 문장 기재
} while (조건식); //반드시 끝에 ';'을 잊지 않도록 주의
예제
01) while 반복문을 이용하여 1~10까지 출력하기
public class Ex15 {
public static void main(String[] args) {
// while 반복문을 이용하여 1~10까지 출력해보자.
int num=1; //반복문에서의 초기식
while (num<=10) { //반복문에서의 조건식과 증감식을 합침
System.out.println("num>>>"+num);
num++;
}
System.out.println();
//do while 문을 이용하여 1부터 10까지 출력해보자.
int num1=1; //초기식
do {
System.out.println("num1>>>"+num1);
}while(num1++<=10); //조건식과 증감식
}
}
02) ABCDEFGHIJKLMNOP....XYZ까지 알파벳을 출력해보자
또, 거꾸로도 출력해보자
public class Ex17 {
public static void main(String[] args) {
//ABCDEFGHIJKLMNOP....XYZ까지 문제를 출력해 보자.
char alpha = 'A';
while (alpha<='Z') {
System.out.print(alpha);
alpha++;
}
System.out.println();
// 거꾸로 입력하고 싶을 때는?
char alpha1 = 'Z';
while(alpha1>='A') {
System.out.print(alpha1);
alpha1--;
}
}
}
03) 1부터 100까지의 홀수의 합과 짝수의 합을 구해보자
public class Ex18 {
// 1부터 100까지의 홀수의 합과 짝수의 합을 구해보자
public static void main(String[] args) {
int su=1; //반복문에서의 초기식
// 홀수의 합 변수, 짝수의 합 변수
int odd=0, even=0;
while(su<=100) {
if(su%2==1) {
odd=odd+su;
}else {
even=even+su;
}
su++;
}
System.out.println("1부터 100까지의 홀수의 합은 " + odd +"입니다.");
System.out.println("1부터 100까지의 짝수의 합은 " + even +"입니다.");
}
}
while문과 if else문을 중첩하여 문제를 풀었다.
04) 화면을 통해 정수를 입력받고, 그 수만큼 별(*)이 출력되도록 해보자.
import java.util.Scanner;
public class Ex20 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.print("별의 최대 갯수를 입력하세요>>> ");
int starCount=sc.nextInt();
System.out.println();
if(starCount>0) {
int count=1;
while(count<=starCount) {
System.out.print("*");
count++;
}
}
sc.close();
}
}
05) 1~100 사이의 정수 중에서 키보드로 5개의 정수를 입력 받아서 5개의 정수 중에서 최대값을 화면에 출력해보자.
import java.util.Scanner;
public class Ex21 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int max=0; //최대값 변수
int temp, su=1;
System.out.println("1부터 100까지 정수 중에서 무작위로 5개의 정수를 입력하시오.");
while (su<=5) { //5개의 정수를 입력하므로, 5번까지 반복
System.out.print(su+"번쨰 정수 입력: ");
temp=sc.nextInt();
if(temp>max) {
max=temp;
}
su++;
}
System.out.println("최대값>>>"+max);
sc.close();
}
}
먼저 temp에 화면에 입력받은 값을 저장하고, (임시로 값을 저장하는 곳이라고 보면 된다.)
새로 값을 부여받은 temp를 max라는 최대값 변수(초기값:0)와 비교한다.
temp 값이 max 값을 초과할 때 temp 값을 max에 부여,
max값이 최대값이 되면 if문을 벗어나게 되어
결과적으로 max값이 입력받은 temp값 중 최대값을 가지게 된다.
어쨋든 if문의 조건문(temp>max)의 참/거짓과는 상관없이 temp값과 max값을 비교하는 작업은 5번을 반복한다. (su++<=5)
06)
숫자 맞추기 게임
컴퓨터가 임의로 설정한 정수값을 맞춰보는 게임을 만들어보자
import java.util.Scanner;
public class Ex22 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("숫자 맞추기 게임");
// 랜덤으로 정수값 저장하기
int num=(int)(Math.random()*99)+1;
System.out.println("1부터 99까지의 숫자 중에서 하나의 숫자를 맞추세요.");
int count=0; //몇 번 안에 맞추는지 카운트하는 변수
int no=0; //키보드로 입력 받은 내가 선택한 숫자
while(no!=num) {
System.out.print("어떤 숫자일까요? >>> ");
no=sc.nextInt();
if(no>num) {
System.out.println("더 작은 숫자입니다.");
}else if(no<num) {
System.out.println("더 큰 숫자입니다.");
}
System.out.println("::::::::::::::::::");
count++;
}
System.out.println("축하합니다. 정답입니다.");
System.out.println("정답은 "+num+"이었습니다.");
System.out.println("정답 소요 횟수는 "+count+"입니다.");
sc.close();
}
}
math.random함수를 써서 임의로 값 정하기
math.random함수는 0 이상 1 미만의 double값을 반환하기 때문에 반드시 자료형 변환 작업을 해야함.
실행하면
'Back-End > Java' 카테고리의 다른 글
[Java] 기타보조제어문(continue, break) (0) | 2021.08.11 |
---|---|
[Java] 조건문 for문 (0) | 2021.08.08 |
[Java] 조건문 switch~case문 (0) | 2021.08.08 |
[Java] 조건문 if-else문, if-else if문 (0) | 2021.08.08 |
[Java] 조건문 if문 (0) | 2021.08.08 |
댓글