자바 언어 기초 - 조건문과 반복문
while 문, do-while 문
한모로그
2023. 1. 15. 15:15
while 문 : 조건식에 따라 실행문을 반복
- 조건식이 true일 경우에 계속해서 반복하고, false가 되면 반복을 멈추고 while 문을 종료
출처, 이것이 자바다
- while 문이 처음 실행될 때 ①조건식을 평가. 평가 결과가 true이면 ②실행문을 실행한다.
- ②실행문이 모두 실행되면 조건식으로 되돌아가서 ①조건식을 다시 평가. 다시 조건식이 true라면 ② → ①로 진행하고, false라면 while 문을 종료.
package ch04.sec05;
/*
* while 반복문
*/
public class PrintFrom1To10Example {
public static void main(String[] args) {
System.out.print(1 + " ");
System.out.print(2 + " ");
System.out.print(3 + " ");
System.out.print(4 + " ");
System.out.print(5 + " ");
System.out.println();
int i = 1;
while(i<=10) {
System.out.print(i + " ");
i++;
}
}
}
package ch04.sec05;
/*
* while문을 이용하여 1~100까지 누적된 합을 구하는 예제
*/
public class SumFrom1To100Example {
public static void main(String[] args) {
int sum = 0;
int i = 1;
while(i<=100) {
sum += i;
i++;
}
System.out.println("1~" + (i-1) + " 합: " + sum);
}
}
- 조건식에 true를 사용하면 while(true) {...}가 되어서 무한 반복. 이 경우 while 문을 빠져나가기 위한 코드 필요
package ch04.sec05;
/*
* 키보드에서 1,2를 입력하면 속도를 증속, 감속 시키고, 3을 입력하면 프로그램을 종료 시키는 예제
*/
import java.util.Scanner;
public class KeyControlExample {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
boolean run = true;
int speed = 0;
while(run) {
System.out.println("-----------------------");
System.out.println("1. 증속 | 2. 감속 | 3. 중지 ");
System.out.println("-----------------------");
System.out.println("선택: ");
String strNum = sc.nextLine();
if(strNum.equals("1")) {
speed++;
System.out.println("현재 속도= " + speed);
}else if(strNum.equals("2")) {
speed--;
System.out.println("현재 속도= " + speed);
}else if(strNum.equals("3")) {
run = false;
}
}
System.out.println("프로그램 종료");
}
}
do-while 문 : 실행 결과에 따라 실행문을 반복
- 블록 내부를 먼저 실행시키고 실행 결과에 따라서 반복 실행을 계속할지 결정
- 작성 시 while() 뒤에 반드시 세미콜론(;)을 붙여야 하는 데 주의
출처, 이것이 자바다
- do-while 문이 처음 실행될 때 ①실행문을 우선 실행한다. ①실행문이 모두 실행되면 ②조건식을 평가
- 평가 결과가 true이면 ① → ②와 같이 반복 실행을 하고, 조건식의 결과가 false이면 do-while 문을 종료한다.
package ch04.sec06;
import java.util.Scanner;
public class DoWhileExample {
public static void main(String[] args) {
System.out.println("메시지를 입력하세요.");
System.out.println("프로그램 종료시 q를 입력");
Scanner sc = new Scanner(System.in);
String inputString;
do {
System.out.println(">");
inputString = sc.nextLine();
System.out.println(inputString);
}while(! inputString.equals("q")); //입력한 데이터가 q가 아닐경우에만
System.out.println();
System.out.println("프로그램 종료");
sc.close();
}
}
실행 결과