본문 바로가기

개발일지/Java + Spring

211019 Java - while

for문에서 무한루프를 걸려면 세미콜론을 두 개 써주면 됨

while문에서 무한루프를 걸려면 (true)를 사용하면 된다.

do-while문은 무조건 한 번은 실행한다. 

countinue는 실행하지 않고 위로 올라간다.

 

와일은 한 번도 실행하지 않을 수 있다.

두 와일은 조건식이 거짓이더라도 최소 한 번은 실행을 해야한다. 

와일로 두 와일을 사용할 수 있다. while(true){ break; } 이런식으로 사용하면 된다. 

 

while(true) 
		{
			System.out.print("점수를 입력하세요.> ");
			num = sc.nextInt();
			
			if(num<0 || num>100)
			{
				break;	
			}
			
			if(num>=80)
			{
				System.out.println("축하합니다. 합격입니다.");
			}
			else
			{
				System.out.println("죄송합니다. 불합격입니다.");
			}
		}
		sc.close();

 

if() break를 가장 먼저 배치해서 바로 나갈 수 있게 해줬다.

 

Scanner sc = new Scanner(System.in);
		int num, cnt = 0, sum = 0;
		double avg = 0;
		
		while(true) 
		{
			num = sc.nextInt();
			
			if(num == 0)
			{
				break;
			}
			
			cnt ++;
			sum += num;
		}
		avg = (double)sum/cnt;
		System.out.printf("입력된 자료의 개수 = %d \n", cnt);
		System.out.printf("입력된 자료의 합계 = %d \n", sum);
		System.out.printf("입력된 자료의 평균 = %.2f \n", avg);
		sc.close();

 

카운트와 썸은 와일문 안쪽에 배치를 했고 avg는 바깥으로 뺐음 평균은 마지막에 한 번만 하면 되니까 밖으로 뺐고, 정수형과 실수형의 계산이기 때문에 강제 형변환을 해주었다.

 

Scanner sc = new Scanner(System.in);
		int num, cnt = 0, sum = 0;
		double avg = 0;
		
		while(true) 
		{
			num = sc.nextInt();
			if(num == 0) break;
			cnt ++;
			sum += num;
		}
		avg = (double)sum/cnt;
		
		System.out.printf("입력된 자료의 개수 = %d \n", cnt);
		System.out.printf("입력된 자료의 합계 = %d \n", sum);
		System.out.printf("입력된 자료의 평균 = %.2f \n", avg);
		sc.close();

위보다 좀 더 줄이면 이렇게 줄일 수 있다!!

 

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int num, cnt = 0, sum = 0;
		int avg = 0;
		
		while(true) 
		{
			num = sc.nextInt();
			if(num == 0) break;
			else if(num%2 == 0) continue;
			sum+=num;
			cnt++;
		}
		avg = sum/cnt;
		System.out.printf("홀수의 합 = %d\n", sum);
		System.out.printf("홀수의 평균 = %d", avg);
		sc.close();
	}

이건 홀수의 합이다!!! continue가 들어감!

 

do-while문

	public static void main(String[] args) {
		int su;
		int sum = 0, cnt = 0;
		int avg;
		Scanner sc = new Scanner(System.in);
		
		do 
		{
			su = sc.nextInt();
			if(su % 2 == 1)
			{
				sum += su;
				cnt++;
			}
		}
		while(su != 0);
		
		avg = sum / cnt;
		System.out.printf("홀수의 합 = %d \n", sum);
		System.out.printf("홀수의 평균 = %d \n", avg);
	}

 

'개발일지 > Java + Spring' 카테고리의 다른 글

211020 Java - Array 배열 복사 하는 방법과 메소드  (0) 2021.10.20
211019 Java - Array  (0) 2021.10.19
JAVA 211019 - today  (0) 2021.10.19
포문 printf  (0) 2021.10.18
switch문 - 가위바위보  (0) 2021.10.18