while문은 조건식이 true일 경우에 계속해서 반복한다. 조건식에는 비교 또는 논리 연산식이 주로 오는데, 조건식이 false가 되면 반복 행위를 멈추고 while문을 종료한다.
While(① 검사조건 ){
②실행문;
}
①while문이 처음 실행될 때 ⓛ조건식을 먼저 평가한다. 평가 결과가 true 이면 ②실행문을 실행한다. ②실행문이 모두 실행되면 다시 조건식으로 돌아가서 ①조건식을 다시 평가한다. 만약 조건식이 true라면 ②에서①로 다시 진행하고 false라면 while문을 종료한다.
※ 검사조건에는 true 라는 값을 넣을 수 있으며, true 라는 값을 넣으면 "무한반복"된다.
예제
package com.dream.controls;
import java.util.Scanner;
//영문 대문자를 소문자로 변경하는 프로그램
public class WhileEx02 {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
String str="";
char ch=0;
while(true) {//무한 반복문
System.out.println("영문 대문자를 소문자로 변경하는 프로그램");
System.out.print("영문 대문자 입력:");
str=in.nextLine();//콘솔뷰에 입력한 문자열을 얻어와서 str변수에 임시로 저장한다.
ch=str.charAt(0);//str에 저장된 문자열에서 String 클래스의 chatAt(index)로 첫번째 문자 하나를 얻는다.
//ch if 조건문의 분기점으로 사용한다.
if(ch>=65&& ch<=90) {//만약 ch가 대문자이면...
System.out.println((char)(ch+32));//char형은 산술연산자로 연산을 하면 정수형으로 바뀐다 그래서 형변환을 해주는것.
break;//반복문을 벗어난다.
}else if(ch>='a'&&ch<='z') {//만역 ch가 소문자이면...
System.out.println("영문 소문자를 입력하였습니다. 대문자를 입력해 주세요.");
}else if(ch==52) {//키보드의 4번을 누르면 '52'번이다. ch52=4(키보드)
System.out.println("프로그램을 종료합니다.");
break;
}else{
System.out.println("영문자를 입력해주세요.");
}
}
}
}
//원하는 만큼 숫자를 입력받아 더하기(누적)
//프로그램 종료는 -1을 입력하면 된다.(=만약 음수이면 break 멈추게 된다)
package com.dream.controls;
import java.util.Scanner;
public class inputNum {
public static void main(String[] args) {
//1.사용자가 숫자를 입력하게 메세지를 출력한다
//2.반복문을 사용해서 사용자가 반복해서 입력하도록한다.
//3.사용자가 -1값을 력하면 반복을 종료한다.
//4.사용자가 입력한 숫자를 계속해서 누적한다.
//5.누적된 숫자를 출력한다.
Scanner in = new Scanner(System.in);
int num=0, total=0;
System.out.println("입력한 숫자를 더하는 프로그램");
System.out.println("-1을 입력하면 프로그램 종료");
while(true){
System.out.println("숫자를 입력하세요");
num=in.nextInt();
total+=num;
if(num==-1){
System.out.println("프로그램 종료");
break;//가장 근접한 반복문 하나만 벗어난다.
}
}
System.out.println("입력한 숫자의 총합은"+total+"이다.");
}
}
결과

'Java' 카테고리의 다른 글
| 배열 (0) | 2022.10.12 |
|---|---|
| 반복문(do-while문) (0) | 2022.10.04 |
| 반복문(for문) (0) | 2022.10.04 |
| 자바 Scanner 클래스 (0) | 2022.09.22 |