본문 바로가기

Programming Language/JAVA

[JAVA] java반복문( for문 & 이중for문 ) +퀴즈문제

 

for문
- 초기,조건,증감문을 한번에 선언가능
- 반복문으로 가독성이 높기에 보편적인 방법이다.

 

for문문법
- 초기,조건,증감문은 일부 or 전부 생략가능하다.

 

 

package day04;

import java.util.Scanner;

public class Test01 {

	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		int repet;
		System.out.print("수 입력: ");
		repet = input.nextInt();
		for (int i = 0; i <= repet; i++) {
			System.out.println(i + "번 반복");
		}
	}

}

repet변수를 int형으로 선언해줍니다.
수를 입력받고 for문 안에서 int형으로 i를 0으로 선언해주고, i<=repet은 i는 현재 0이므로 0<=입력한수가
참일경우 아래 메시지를 출력해주는데 이때, i는 처음수인 0이기에 0번반복이 출력되고,
i++을 통해 증감을해줍니다. 증감이된 i는1이되고, 1<=repet을 비교하고 참이면 다시 메시지출력을 1을해줍니다.
이와같이 사용자가 입력한 수까지 반복됩니다.

 

 

 

 

package day04;

public class Test04 {

	public static void main(String[] args) {
		int su,evenSum=0, oddSum=0;
		for(su =1;su<=10;su++) {
			if(su%2==0) {
				evenSum+=su;
			}else{
				oddSum+=su;
		}
		System.out.println("1~10 짝수 합 : "+evenSum );
		System.out.println("1~10 홀수 합 : "+oddSum );
	}

}

for문에서 su변수에 1을 저장해주고, su가10보다 작기때문에 참으로 실행됩니다.
for문안에 if문이 있기때문에 이때, if문에 su는 1이므로, 2로 나누었을때 나머지가 1이기에 거짓이되어서 oddSum에 su가 
합해집니다. 이런식으로 1~10까지의 짝수합과 홀수합이 누적되서 출력됩니다.

 

 

↓ Q. 아래 퀴즈를 풀어주세요. ↓

다음과 같이 출력하시오.
1. Hi
2. Hi
3. Hi
4. Hi
5. Hi

 

 

 

 

 

. 아래 정답 ↓

 

package day04;

public class Quiz01 {

	public static void main(String[] args) {
		for(int i=1;i<5;i++) {
			System.out.println(i+". Hi");
		}
	}

}

 

 

 


 

이중 for문

 

package day04;

public class Test7 {

	public static void main(String[] args) {
		int su1, su2, sum =0;
                   for(su1 = 1; su1<=10; su1++){
			for(su2 = 1; su2<=10; su2++{
                              sum+=1;
		}
                System.out.println("sum: "+sum);
	}

}

su1변수에 1을 저장하고, su1은 10보다 작으므로 참이되고, 아래 for문으로 들어옵니다.
아래 for문에서 su2변수에 1을 저장하고, su2는 10보다 작으므로 참이되고, 아래 sum변수에 1을 더해줍니다.
다시 두번쨰 for문에서 나오지않았으므로 두번째 for문에있는 su2변수를 증감시켜 2가되고 2가 10보다 작으므로
참이 되서 sum에 1+1을 해서 2가 저장이되고 지속적으로 두번쨰for문을 10까지 증감시켜서 거짓이될때까지
실행해주고 첫번째 for문에서 su1을 증감시켜 2가되면 다시 두번쨰for문을 10까지 돌려줍니다.
이런방식으로 sum이 모두저장되면 최종sum의 값이 출력됩니다.

 

 

↓ Q. 아래 퀴즈를 풀어주세요. ↓

1. 1~1000까지의 합을 구하시오.
  (단, 3의 배수는 제외하고 3의 배수이면서 5의배수는 제외하지않는 조건으로 구하시오.)

 

 

 

 

. 아래 정답 ↓

 

package day04;

public class Quiz05 {

	public static void main(String[] args) {
		int sum = 0;
		for(int i=0;i<1000;i++) {
			if(i%3==0 && i%5!=0) {
				continue;
			}else {
				sum +=i;
			}
		}
		System.out.println("1~1000까지의 합: "+sum);
	}
}