728x90
while 문
while 문은 조건식을 검사한 후, 조건식이 참이면 반복하고 거짓이면 while 문을 벗어나게 됩니다.
while문의 조건식은 생략이 불가능합니다.
기본형식
while(조건식){
//실행부
}
예시를 들어보겠습니다.
시험점수(0~100)를 입력 받아 점수를 출력하고, 범위가 벗어날경우 입력란을 다시 실행시킨다.
package java1208;
import java.util.Scanner;
public class while1 {
public static void main(String[] args) {
int score;
Scanner sc = new Scanner(System.in);
System.out.print("시험 점수 (0~100사이의 정수)를 입력하세요: ");
score = sc.nextInt();
// 사용자가 유효한 시험 점수를 입력할때까지 계속 점수입력을 요청한다.
while(score < 0 || score > 100) { // score가 해당 범위를 벗어났을 경우 while 문을 반복한다.
System.out.println("범위를 벗어난 시험 점수가 입력되었습니다.");
System.out.print("시험 점수 (0과 100사이의 정수)를 입력하세요: ");
score = sc.nextInt();
}
System.out.println("시험점수: " + score);
sc.close();
}
}
해당 코드처럼 사용이 가능합니다.
do~while 문
while문의 변형으로 do~while이 있습니다.
do~while은 while 문과 달리 조건식이 후행에 배치되어
문장을 한번 실행한후 검사하여 조건식의 참과 거짓을 판단합니다.
따라서 do~while 문은 반드시 한번은 수행이 됩니다.
기본형식
do{
//실행되는 부분
} while(조건식);
예시를 들어보겠습니다.
상품들의 가격의 합이 100,000을 초과할때까지 상품가격들을 계속 읽어 들이는 프로그램을
생성하라.
코드는 다음과 같습니다.
package java1208;
import java.util.Scanner;
public class while2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 상품가격 들의 합이 100,000을 초과할 때 까지 상품 가격들을 계속 읽어 들이는 프로그램
int price;
int total;
total = 0;
do {
System.out.print("구매한 상품의 가격을 입력하세요: ");
price = sc.nextInt();
total += price;
} while(total <= 100000);
// 합계를 출력
System.out.println("총 구매 가격: " + total);
sc.close();
}
}
while 문의 예시를 몇가지 더 들어보겠습니다.
성적을 입력받아 학점을 출력하고, 과목수를 카운트 하는 프로그램을 만들어 보겠습니다.
코드는 다음과 같습니다.
package java1208;
import java.util.Scanner;
public class while2 {
public static void main(String[] args) {
// 90이상 A, 80이상 B, 70이상 C, 60이상 D, 60미만 F
// 점수를 입력하세요(종료하려면 -1을 입력):
Scanner sc = new Scanner(System.in);
//scanner 객체를 가르키는 참조 변수
int score; // 입력 받는 점수
int totalCount = 0; // 몇 번 입
int Acount = 0; // A 학점 수
int Bcount = 0; // B 학점 수
int Ccount = 0; // C 학점 수
int Dcount = 0; // D 학점 수
int Fcount = 0; // F 학점 수
//첫번째 점수를 입력받는다.
System.out.print("점수를 입력하세요(종료하려면 -1을 입력): ");
score = sc.nextInt();
while ( score != -1 ) {
// 점수가 양수일동안 다음 반복문을 계속한다.
totalCount++; //입력 값들을 누적
if (score >= 90 ) Acount++; //점수에 해당하는 학점수를 1만큼 증가.
else if (score >= 80) Bcount++;
else if (score >= 70) Ccount++;
else if (score >= 60) Dcount++;
else Fcount++;
System.out.print("점수를 입력하세요(종료하려면 -1을 입력): ");
//다음 점수를 입력받는다.
score = sc.nextInt();
}
//점수들의 총수, A 학점 수, B 학점 수, C 학점수, D 학점 수, F 학점 수
System.out.println();
System.out.println("점수들의 총수 = " + totalCount);
System.out.println("A 학점 수 = " + Acount);
System.out.println("B 학점 수 = " + Bcount);
System.out.println("C 학점 수 = " + Ccount);
System.out.println("D 학점 수 = " + Dcount);
System.out.println("F 학점 수 = " + Fcount);
sc.close();
}
}
이런식으로 표현이 가능합니다.
728x90
'JAVA > Java 기초' 카테고리의 다른 글
| Array, 다차원 배열 - Java 기초 (0) | 2022.12.09 |
|---|---|
| Array, 배열 - Java 기초 (0) | 2022.12.09 |
| 반복문, for문 - Java 기초 (0) | 2022.12.08 |
| 조건문, switch문 (0) | 2022.12.08 |
| java 연산자 우선순위 (0) | 2022.12.07 |