728x90
반응형

<오늘의 학습>

1. 조건문 if

2. 조건문 switch-case

3. 반복문 for

4. 반복문 while

5. continue

6. break

 

 

3. 반복문 for

1) for문

▶ 반복되는 일을 처리하기 위해 반복문을 사용한다.

		for(초기값;조건문;증감식){
		       ①  ②⑤   ④
			조건문이 참일 때 실행
			조건문이 거짓일 때까지 반복 처리
			③⑥
		}

 

 


 예제) 반복문을 이용하여 1부터 10까지/10부터 1까지 출력

		/*1부터 10까지 출력*/
		int i;
		for(i=1;i<11;i++){
			System.out.print(i+" ");
		}
		System.out.println();
		
		/*10부터 1까지 출력*/
		for(i=10;i>0;i--){
			System.out.print(i+" ");
		}
1 2 3 4 5 6 7 8 9 10 
10 9 8 7 6 5 4 3 2 1

 

 


 예제) 반복문을 이용하여 아스키코드 'A'의 값을 이용하여 A~Z까지 출력

		char c;
		for(c='A';c<='Z';c++)
			System.out.printf("%c",c);
		System.out.println();
		
		//아스키코드표: 'A'는 65
		for(c=65;c<=90;c++)
			System.out.printf("%c",c);
		System.out.println();
		
		/*a~z까지 출력*/
		for(c=97;c<=122;c++)
			System.out.printf("%c",c);
		System.out.println();
ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz

 

 


 예제) 반복문과 조건문을 이용하여 1부터 50까지의 숫자 중 6의 배수만 출력

		System.out.print("1부터 50까지의 숫자 중 6의 배수인 수 : ");
		for(int i=1;i<=50;i++){
			if(i%6==0){
				System.out.print(i+" ");
			}
		}
1부터 50까지의 숫자 중 6의 배수인 수 : 6 12 18 24 30 36 42 48

 

 


 예제) 반복문과 조건문을 이용하여 1부터 20까지의 짝수의 합을 출력

		int sum=0;
		for(int i=1 ; i<=20 ; i++){
			if(i%2==0){
				sum+=i;//sum=sum+i;
			}
		}
		System.out.print("1부터 20까지의 짝수의 합:"+sum);
1부터 20까지의 짝수의 합:110

 

※ 반복문 안에서 sum 값이 변화하는 모습을 확인해 보자

		/*1~20까지의 짝수의 합*/
		/*반복문에서 어떤 값이 sum 값에 더해지는지 확인*/
        
		int sum=0;
		for(int i=1 ; i<=20 ; i++){
			if(i%2==0){
				System.out.printf("%2d+%2d=",sum,i);//한자리부터 두자리수 숫자가 나오기때문에 깔끔하게 출력하기 위해 2칸 확보
				sum+=i;//sum=sum+i;
				System.out.printf("%3d\n",sum);
			}
		}
		System.out.print("1부터 20까지의 짝수의 합:"+sum);

 

 0+ 2=  2
 2+ 4=  6
 6+ 6= 12
12+ 8= 20
20+10= 30
30+12= 42
42+14= 56
56+16= 72
72+18= 90
90+20=110
1부터 20까지의 짝수의 합:110

 

 


2) 이중 for문

▶ 반복문 안에 또 다른 반복문을 중첩해서 사용할 수 있다.

 

 예제) 2단부터 9단까지의 구구단 출력

		int i,j;
		System.out.println("<구구단(2~9단)>");
		for(i=1;i<10;i++){
			for(j=2;j<10;j++){
				System.out.printf("%d*%d=%2d\t",j,i,j*i);
			}//inner_for
			System.out.println();
		}//out_for
<구구단(2~9단)>
2*1= 2	3*1= 3	4*1= 4	5*1= 5	6*1= 6	7*1= 7	8*1= 8	9*1= 9	
2*2= 4	3*2= 6	4*2= 8	5*2=10	6*2=12	7*2=14	8*2=16	9*2=18	
2*3= 6	3*3= 9	4*3=12	5*3=15	6*3=18	7*3=21	8*3=24	9*3=27	
2*4= 8	3*4=12	4*4=16	5*4=20	6*4=24	7*4=28	8*4=32	9*4=36	
2*5=10	3*5=15	4*5=20	5*5=25	6*5=30	7*5=35	8*5=40	9*5=45	
2*6=12	3*6=18	4*6=24	5*6=30	6*6=36	7*6=42	8*6=48	9*6=54	
2*7=14	3*7=21	4*7=28	5*7=35	6*7=42	7*7=49	8*7=56	9*7=63	
2*8=16	3*8=24	4*8=32	5*8=40	6*8=48	7*8=56	8*8=64	9*8=72	
2*9=18	3*9=27	4*9=36	5*9=45	6*9=54	7*9=63	8*9=72	9*9=81

 

 

 

4. 반복문 while

1) while문

▶ while문은 조건식이 참인 동안 수행문을 반복해서 수행한다.

		초기값
		while(조건식){
			조건식이 참이면 수행
			증감식
		}

 

▶ while문의 무한 반복

		while(true){
			//무한 반복
		}

 

 


 예제) while문을 이용하여 1부터 10까지 출력

		int i=1;
		
		System.out.println("<while(1~10)>");
		while(i<=10){
			System.out.print(i+" ");
			i++;
		}//while_end
		System.out.println("\n");
<while(1~10)>
1 2 3 4 5 6 7 8 9 10

 

 


2) do-while문

▶ while문은 조건을 먼저 검사해서 조건식에 맞지 않으면 한 번도 수행이 일어나지 않는다. 하지만 do-while문은 {} 안의 문장을 무조건 한 번 수행한 뒤에 조건식을 확인한다는 점에서 차이가 있다.

		초기값
		do{
			먼저 1번은 수행한 뒤, 조건식이 참이면 수행
			증감식
		}while(조건식);

 

 


 예제) do~while문을 이용하여 10부터 20까지 출력

		i=10;
		System.out.println("<do~while(10~20)>");
		do{
			System.out.print(i+" ");
			i++;
		}while(i<=20);//do_while_end
<do~while(10~20)>
10 11 12 13 14 15 16 17 18 19 20

 

 


 예제) while문과 do-while문을 비교

		/*while*/
		int a=10000;
		while(a<=10){
			System.out.println("Hello");
		}
		System.out.println();//줄바꿈
		
		/*do~while*/
		int b=10000;
		do{//한 번은 출력
			System.out.println("World");
		}while(b<=10);
	//while문의 Hello 는 출력되지 않음
World

※do-while문은 수행을 한 번 한 뒤에 조건식을 확인하기 때문에 World만 출력된다.

 

 

 

5. continue

  • continue문은 반복문과 함께 쓰인다.
  • continue문을 만나면 이후의 문장은 수행하지 않고 for문의 처음으로 돌아가 증감식을 수행한다.
  • 반복문을 수행할 때, 특정 조건에서는 수행하지 않고 건너뛰어야 할 때 사용한다.
		int num, sum=0;
		
		for(num=1;num<=100;num++){
			if(num%2==0)	//짝수일 때
				continue;	//num 값을 sum에 저장하지 않고 num++을 수행
			sum += num;
		}
		System.out.println("1부터 100사이의 홀수의 합:"+sum);
1부터 100사이의 홀수의 합:2500

 

 

 

6. break

  • switch-case문에서 break문을 사용할 때, 조건을 만족하면 다른 조건을 더 이상 비교하지 않고 switch문을 빠져나온다.
  • 반복문에서 break문을 만나면 더 이상 반복하지 않고 해당 반복문을 빠져나온다.
		/*for문의 break*/
		
		for(int i=1;i<=50;i++){
			System.out.print(i+" ");
			if(i==10)
				break;//i값이 10이면 반복문 for 탈출
		}//for_end
		System.out.println();
		/*while문의 break*/

		int a=1;
		while(a<10000){
			System.out.print(a+" ");
			if(a==10)
				break;
			a++;
		}
1 2 3 4 5 6 7 8 9 10

 

 

 

 

 


2023년 5월 17일 수요일

<4일차 수업 후기>

반복할 변수 i 등을 선언할 때 전역 변수보다는 지역 변수로 많이 선언하는 것을 새롭게 알게 되었다. 데이터 낭비를 줄이기 위해서 더 이상 사용하지 않을 변수라서 지역 변수로 선언해 주는 것 같았다. 앞으로는 데이터가 낭비되지 않도록 신경 써서 코드를 작성해야겠다.

개인적으로 조건문과 반복문을 이용한 알고리즘 문제가 가장 재미있다고 생각한다. 재미있는 수업이었다.

728x90
반응형

+ Recent posts