Java

JAVA while 기본문법

검은참깨두유vm 2020. 11. 25. 09:49
반응형

학습목표

Q1) 점수를 입력받아 max 값, 과목 수, 평균값을 출력하는 프로그램을 작성하시오.

 (단, 과목수는 모름, 점수 입력시 -1이 들어오면 EOF(end of file)를 의미한다.)

 

입력값 

점수 : 100     점수 : 78     점수 : 96     점수 : -1

 

학습할 것

while, 최대값 구하기, switch 기법

 


 

Q) 1+2+3+...+100을 구하는 프로그램을 작성하시오.

 

while 문법의 사용법

while (조건식) { 조건식이 false가 될 때까지 반복수행될 문장 }

if 와 비슷하지만 다른점이 조건식이 false가 될 때까지 블럭 { } 안의 문장들을 반복해서 수행한다는 점이다.

조건이 false가 되지 않는다면 무한히 블럭 { } 안을 맴돌게 된다.

이 때 while 문장에서 빠져나가려면 break; 를 쓰거나, 조건식을 false로 만드는 switch기법을 사용할 수 있다.

 

while { } 블럭 안에서 while문에 영향을 주는 break; 와 continue; 가 있다

break; 를 만나게 되면 while은 더 이상 반복되지 않고 빠져나간다.

continue;를 만나게 되면 while의 첫부분, 조건식부터 돌아가서 다시 실행하게 된다.

 

switch 기법을 사용해서 while 반복문을 빠져나갈 수 있다.

int sw = 0;
while ( sw == 0 ) { 반복 }

위 코드에서 sw == 0, 즉 참이므로 계속 돌게되는데

돌다가 어느순간 sw의 값을 1로 바꾸면 조건식이 false가 되므로 반복이 더 이상 실행되지 않는다.

 

더보기
package JavaWhile;

public class JavaWhile {

	public static void main(String[] args) {
		int jungsu = 1; // 1씩 올라가는 수
		int sw = 0; // switch기법
		int dab = 0; // 정답
        
		while(sw == 0) {
			if(jungsu >= 100) {
				sw = 1;
			}
			
			dab = dab + jungsu;
			jungsu = jungsu + 1;
		}
		
		System.out.println(dab);
	}
}

 

 

 


최대값 구할 때는 최대값을 비교할 값 중 하나와 같은 값의 변수를 두고

비교할 다른 값을 비교하면서 구할 수 있다.

int jumsu1 = 85; // 비교할 값1
int max = jumsu1; // 최대값을 구하는 변수
if ( max < jumsu2 ) { max = jumsu2; } // 점수2가 더 크다면 max 값은 바뀐다.

 


이를 이용하여 Q1을 구하는 프로그램을 작성할 수 있다.

더보기
package JavaWhile;

import java.util.Scanner;

public class Q1 {

	public static void main(String[] args) {
		
		int class_count = 0;
		int total = 0;
		int sw = 0;
		
		System.out.print("점수 : ");
		Scanner sc = new Scanner(System.in);
		int jumsu = sc.nextInt();
		int max = jumsu;
		double avg;
		
		while(sw == 0) {
			if (jumsu == -1) {
				sw = 1; continue;
			}
			
			class_count++;
			total += jumsu;
			
			if(max < jumsu) {
				max = jumsu;
			}
			
			System.out.print("점수 : ");
			jumsu = sc.nextInt();
			
		}
		
		System.out.println("점수 max 값은 " + max);
		System.out.println("과목 수는 " + class_count);
		System.out.println("평균 값은 " + total/(class_count*1.0));
		
	}
}

 

반응형

'Java' 카테고리의 다른 글

JAVA FOR 기본문법  (0) 2020.11.26
JAVA IF 기본문법  (0) 2020.11.24