Java 기초 제어문 - do-while문
728x90
기본 환경
JDK : 1.8.0_261 버전 JRE : 1.8.0_261 버전 JAVA VERSION : 8 업데이트 261 Eclipse IDE VERSION : 2020-06버전 |
목표
자바에서 사용하는 do-while문을 이해한다.
코드
package ex04controlerstatement; import java.io.IOException; import java.util.Scanner; public class E04DoWhile { /* do ~ while문 : 반드시 한번은 실행해야 할 경우 사용하는 반복문. 즉 조건검사 없이 무조건 한번은 실행된다. 형식] 반복을 위한 초기값; do{ 실행문장; 반복문을 탈출하기 위한 증감식 }while(조건식); <= 반드시 ;(세미콜론)으로 마무리한다. */ public static void main(String[] args) throws IOException { /* 시나리오] E03 예제의 수열문제를 do~while문으로 변경하여 구현하시오. */ int sum = 0; int i = 1; do { sum += i; i++; }while(i<=10); System.out.println("1~10까지의 누적함 :" +sum); /* 시나리오] 1부터 1000까지의 정수중 4의배수이거나 7의배수인 수의 합을 구하여 출력하는 프로그램을 작성하시오 단, do~while문을 사용해야 한다. */ int total = 0; int j = 1; do { if(j % 4 == 0 || j%7 ==0) { //System.out.println("j= " + j ); total += j; } j++; }while(j <=1000); System.out.println("1~1000사이 4or7의 배수합 : " + total); /* 시나리오] 국어, 영어 수학 점수를 사용자로부터 입력받은 후 평균을 구해 A~F학점을 판단하여 출력하는 프로그램을 작성하시오. 단 사용자가 X,x(대소문자 구분 없)를 입력하면 프로그램이 종료되어야 하며 do~while문으로 구현해야한다. */ Scanner scanner = new Scanner(System.in); int kor, eng, math, avg; int exitCode; do { System.out.println("국어 점수 : "); kor = scanner.nextInt(); System.out.println("영어 점수 : "); eng = scanner.nextInt(); System.out.println(" 수학 점수 : "); math = scanner.nextInt(); /* switch문은 if문과 같은 조건식을 사용할 수 없고 산술식만 사용할 수 있으므로 정수의 구간을 구하기 위해 총점을 30으로 나눠준다. */ avg = (kor+eng+math) / (3*10); switch(avg) { case 10: case 9: System.out.println("A학점"); break; case 8 : System.out.println("B학점"); break; case 7 : System.out.println("C학점"); break; case 6 : System.out.println("D학점"); break; default : System.out.println("F학점"); } System.out.println("종료하려면 x(X)를 입력하세요 "); System.out.println("계속하려면 아무키나 입력하세요"); exitCode = System.in.read(); }while(!(exitCode == 'x' || exitCode == 'X')); /* x를 입력한 경우 : (true OR false) => ! true => false 반환. 즉 do~while문을 탈출함 a를 입력한 경우 : 위 경우와는 반대이므로 Loop를 반복함. */ } }
while문에 확장인 do-while문이라고 할 수 있습니다. whlie문과 다른점은 일단 실행하고 그다음부터 조건을 검사한다는 겁니다. 제가 처음에 학과에 입학해서 do-while문을 배웠을 때 "오 이런게 있네 개쩔잖아" 하고 거의 모든 코드에 do-while문을 썼던 기억이 납니다. 근데 do-while문이 생각보다 명시적라는 생각이 안들어서 요즘은 많이 안쓰게 되네요. 앞에 게시물의 시나리오를 잘 해보셨다면 여기에 시나리오도 do-while문에 문법만 알게 되면 쉽게 해결하실 수 있으실 겁니다. 마지막 예제가 좀 어려운데 한번 주석의 설명을 읽어보시고 다시 스스로 해보시는 걸 추천해 드립니다.
결과 값

'Java > Java_기초부터 _끝까지' 카테고리의 다른 글
Java 기초 제어문 - break문, continue문 (0) | 2020.10.08 |
---|---|
Java 기초 제어문 - for문 (0) | 2020.10.08 |
Java 기초 제어문 - while문 (0) | 2020.10.07 |
Java 기초 제어문 - switch문 (0) | 2020.10.07 |
Java 기초 제어문 - if문(3) (0) | 2020.10.07 |
댓글을 사용할 수 없습니다.