학원수업_basicJAVA/3. Sentence

201014 Sentence02

logloglog 2020. 10. 14. 16:08

for 

while do-while 세가지 있고 for를 주로쓴다

 

셋다 병행가능하지만 문제마다 적합한 놈은 따로있다.

package c_sentence;

public class Sentence_02 {
	public static void main(String[] args) {
	/*
	 1. 반복문 (for, while, do-while)
	 	- 어떤 작업이 반복적으로 수행되도록 할때 사용됨
	 	- 반복문은 조건식을 만족하는 동안 주어진 문장을 반복적으로 수행함으로
	 	  조건식을 포함한다.
	 	- for문의 경우 반복횟수를 알 때 사용, while문은 반복횟수를 모를때 많이 사용
	 	
	 2. for문
	 	- 기본구조
	 	  for(초기화;조건식;증감식){
	 	  	조건식이 만족할 동안 수행될 문장들
	 	  }
	 	  
	 	  10번 반복한다치면 1이 아닌 0부터 시작~ 10미만으로 조건식 하는게 편함
	 	  
	 	  순서 : 초기화 -> 조건식 -> 실행 -> 증감식 -> 
	 	  				조건식 -> 실행 -> 증감식 ->
	 	  				... 조건식이 만족하지않으면 빠져나온다.
	 */
//		System.out.println(1);
//		System.out.println(2);
//		System.out.println(3);
//		System.out.println(4);
//		System.out.println(5);
//		System.out.println(6);
//		System.out.println(7);
//		System.out.println(8);
//		System.out.println(9);

		
		//시작 : 0 끝 : 9 증가량 : 1
		//반복구문 : System.out.println(?);
		/*
		for(int num=0;num<10;num++){
			System.out.println(num);
		}
		*/
		
		
		//1. 3~15까지의 합계를 구하여라
		int i = 3;
		int sum = 0;
		
//		sum+=3;
//		sum+=4;
//		sum+=5;
//		sum+=6;
//		sum+=7;
//		sum+=8;
//		sum+=9;
//		sum+=10;
//		sum+=11;
//		sum+=12;
//		sum+=13;
//		sum+=14;
//		sum+=15;
		
		sum+=i;
		i++;
	
		sum+=i;
		i++;
		
		sum+=i;
		i++;
		
		sum+=i;
		i++;
		
		sum+=i;
		i++;
		
		sum+=i;
		i++;
		
		sum+=i;
		i++;
		
		sum+=i;
		i++;
		
		sum+=i;
		i++;
		
		sum+=i;
		i++;
		
		sum+=i;
		i++;
		
		sum+=i;
		i++;
		
		sum+=i;
		i++;
		
		//System.out.println(sum);
		
		sum=0;
		
		for(i=3;i<16;i++){
			sum+=i;
		}
		
		System.out.println(sum);
		
		
		for(int j = 0;j<6;j++){
			System.out.print(j +" ");
		
		}
		
		System.out.println();
		
		for(int k = 5;k>-1;k--){
			System.out.print(k + " ");
		}
		
		System.out.println();
		
		int sum1=0;
		for(int l = 2; l<11;l++){
			sum1+=l;
		}
		System.out.println(sum1);
		//시작 : 2 끝 :10 증가량 1 반복 : sum+=숫자
		
		
		long gob = 1L;
		for(int g = 5; g<15;g++){
			gob*=g;
		}
		System.out.println(gob);
		//시작 : 5, 끝 14, 증가량 1 반복되는값 gob*=g
		/*
		gob*=5
		gob*=6
		...
		gob*=14
		
		
		*/
	
		
		int hab = 0;
		for(int h = 3; h<4463;h++){
			if(h%2==0){
				hab+=h;
			}
		}
		System.out.println(hab);
		//시작값: 3 끝값 4462 반복값 짝수에서 +2  증가값1
		/*
		 hab += 4
		 hab += 6
		 hab += 8
		 
		 ....
		 hab += 4462
		 
		 */
		
		
//		int hab56 = 0;
//		for(int h = 3; h<4463;h++){
//			hab56+=h;
//		}
//		System.out.println(hab56);
//		
		
		
		int hab2 = 0;
		for(int t = 8;t<57;t++){
			if(t%2==0||t%3==0){
				hab2+=t;
			}
		}
		
		System.out.println(hab2);
	//시작값 : 8 끝값 56 반복값 hab = hab + (2또는 3의 배수) 증가값 +1
		
	
		//반복문에서는 반복되는 구문을 찾는게 가장 어려움
		
		//구구단을출력
		
		/*
		 2 * 1 = 2*1
		 2 * 2 = 2*2
		 */
		
		//int num1 = 2;
		
		System.out.println(2 + "*" +1 + "=" + 2*1);
		System.out.println(2 + "*" +2 + "=" + 2*2);
		System.out.println(2 + "*" +3 + "=" + 2*3);
		System.out.println(2 + "*" +4 + "=" + 2*4);
		System.out.println(2 + "*" +5 + "=" + 2*5);
		System.out.println(2 + "*" +6 + "=" + 2*6);
		System.out.println(2 + "*" +7 + "=" + 2*7);
		System.out.println(2 + "*" +8 + "=" + 2*8);
		System.out.println(2 + "*" +9 + "=" + 2*9);
		
		
		System.out.println(3 + "*" +1 + "=" + 3*1);
		System.out.println(3 + "*" +2 + "=" + 3*2);
		System.out.println(3 + "*" +3 + "=" + 3*3);
		System.out.println(3 + "*" +4 + "=" + 3*4);
		System.out.println(3 + "*" +5 + "=" + 3*5);
		System.out.println(3 + "*" +6 + "=" + 3*6);
		System.out.println(3 + "*" +7 + "=" + 3*7);
		System.out.println(3 + "*" +8 + "=" + 3*8);
		System.out.println(3 + "*" +9 + "=" + 3*9);
		
		
		System.out.println(4 + "*" +1 + "=" + 4*1);
		System.out.println(4 + "*" +2 + "=" + 4*2);
		System.out.println(4 + "*" +3 + "=" + 4*3);
		System.out.println(4 + "*" +4 + "=" + 4*4);
		System.out.println(4 + "*" +5 + "=" + 4*5);
		System.out.println(4 + "*" +6 + "=" + 4*6);
		System.out.println(4 + "*" +7 + "=" + 4*7);
		System.out.println(4 + "*" +8 + "=" + 4*8);
		System.out.println(4 + "*" +9 + "=" + 4*9);
		
		
//		System.out.println(5 + "*" +1 + "=" + 5*1);
//		System.out.println(5 + "*" +2 + "=" + 5*2);
//		System.out.println(5 + "*" +3 + "=" + 5*3);
//		System.out.println(5 + "*" +4 + "=" + 5*4);
//		System.out.println(5 + "*" +5 + "=" + 5*5);
//		System.out.println(5 + "*" +6 + "=" + 5*6);
//		System.out.println(5 + "*" +7 + "=" + 5*7);
//		System.out.println(5 + "*" +8 + "=" + 5*8);
//		System.out.println(5 + "*" +9 + "=" + 5*9);
		
		//시작: 1, 끝 9 증가1
		//반복 	System.out.println(5 + "*" +9 + "=" + 5*9);
		/*for(int i = 1;i<10;i++){
			System.out.println(5 + "*" +i + "=" + 5*i);
		}*/
		
		System.out.println(6 + "*" +1 + "=" + 6*1);
		System.out.println(6 + "*" +2 + "=" + 6*2);
		System.out.println(6 + "*" +3 + "=" + 6*3);
		System.out.println(6 + "*" +4 + "=" + 6*4);
		System.out.println(6 + "*" +5 + "=" + 6*5);
		System.out.println(6 + "*" +6 + "=" + 6*6);
		System.out.println(6 + "*" +7 + "=" + 6*7);
		System.out.println(6 + "*" +8 + "=" + 6*8);
		System.out.println(6 + "*" +9 + "=" + 6*9);
		
		// 시작 : 19 증가1
		// 반복 System.out.println(6 + "*" +gob + "=" + 6*gob);
		/*for(int i = 1;i<10;i++){
			System.out.println();
		}*/
		
		System.out.println(7 + "*" +1 + "=" + 7*1);
		System.out.println(7 + "*" +2 + "=" + 7*2);
		System.out.println(7 + "*" +3 + "=" + 7*3);
		System.out.println(7 + "*" +4 + "=" + 7*4);
		System.out.println(7 + "*" +5 + "=" + 7*5);
		System.out.println(7 + "*" +6 + "=" + 7*6);
		System.out.println(7 + "*" +7 + "=" + 7*7);
		System.out.println(7 + "*" +8 + "=" + 7*8);
		System.out.println(7 + "*" +9 + "=" + 7*9);
		
		
		System.out.println(8 + "*" +1 + "=" + 8*1);
		System.out.println(8 + "*" +2 + "=" + 8*2);
		System.out.println(8 + "*" +3 + "=" + 8*3);
		System.out.println(8 + "*" +4 + "=" + 8*4);
		System.out.println(8 + "*" +5 + "=" + 8*5);
		System.out.println(8 + "*" +6 + "=" + 8*6);
		System.out.println(8 + "*" +7 + "=" + 8*7);
		System.out.println(8 + "*" +8 + "=" + 8*8);
		System.out.println(8 + "*" +9 + "=" + 8*9);
		
		
		System.out.println(9 + "*" +1 + "=" + 9*1);
		System.out.println(9 + "*" +2 + "=" + 9*2);
		System.out.println(9 + "*" +3 + "=" + 9*3);
		System.out.println(9 + "*" +4 + "=" + 9*4);
		System.out.println(9 + "*" +5 + "=" + 9*5);
		System.out.println(9 + "*" +6 + "=" + 9*6);
		System.out.println(9 + "*" +7 + "=" + 9*7);
		System.out.println(9 + "*" +8 + "=" + 9*8);
		System.out.println(9 + "*" +9 + "=" + 9*9);
		
		
		
		//System.out.println(num1 + "*" +num2 + "=" + num1*num2);
		
//		
		//구구단
		for(int num1 = 2; num1<10; num1++){
			
			for(int num2 = 1;num2<10;num2++){
				System.out.println(num1 + "*" +num2 + "=" + num1*num2);
			}	
		System.out.println("-------------------");
		}
		
		//시작값이 1 끝값이 9 증가1 반복 syso 2*
		
		
		//2단만
		//int b = 2;
		/*for(int a = 1; a<10; a++){
			System.out.println(2 + "*" + a + "=" + 2*b);
		
		}*/
		
		//3//int b = 3;
		/*for(int a = 1; a<10; a++){
			System.out.println(3 + "*" + a + "=" + 3*a);
		
		}
		*/
		//세줄이 반복됨 이걸 반복문으로 바꾼다.
		
		/*for(int dan = 2;dan<10;dan++){
			for(int gob = 1; gob<10; gob++){
				System.out.println(dan + "*" + gob + "=" + dan*gob);
			
			}
		}*/
		
		//반복되는 값 for(int a = 1; a<10; a++){System.out.println(? + "*" + a + "=" + ?*a);
		//초기값 :2 끝값:9 증가값:1
		
		
		
		//곱이 짝수일때 출력해라
		
/*for(int dan = 2; dan<10; dan++){
	for(int gob1 = 1;gob1<10;gob1++){
		if(gob1%2==0){
		System.out.println(dan + "*" +gob1 + "=" + dan*gob1);}
	}	
		
}
	*/	
		//단이 홀수 곱은 짝수일때 출력해라
		
for(int dan = 2; dan<10; dan++){

			for(int gob1 = 1;gob1<10;gob1++){
				if(gob1%2==0&&dan%2==1){
				System.out.println(dan + "*" +gob1 + "=" + dan*gob1);}
				
	}		
}
// ctrl shift b 디버깅할때..쓰는것 line breakpoint

/*
 3. while문
 	- 반복 횟수를 모를때 사용하지만 카운터 변수를 이용하여 for문과 동일하게 사용할 수 있다.
 	- 기본구조
 		while(조건식){
 			조건식이 만족할때 수행될 문장.
 		}
 		
 */

//1. 0~10까지 출력
	for(int num = 0;num<11;num++){
		System.out.println(num);
}
//이거를 while문으로 바꾸면

	int num=0;
	while(num<11){
		System.out.println(num);
		num++;
}
//for와 순서는 같은데, 초기화를 밖에, 증감은 수행문 뒤에

//while 문으로 3~10까지의 합계를 구하여라
	int num1=3;
	int sum11=0;
	while(num1<11){
		sum11+=num1;
		num1++;
		}
	System.out.println("while답 : " + sum11);
	
	
	//구구단을 while 문으로 만들기
	
	int wdan = 2;
	
	while(wdan<10){
		
		int wgop = 1; // 다시 초기화된다.
		while(wgop<10){
			System.out.println(wdan+"*"+wgop+"="+wdan*wgop);
			wgop++;
		}
		
		wdan++;
	}

	
	//1. 1~?의 합이 200보다 커지는 ?는 무엇일까?
	/*
	int q = 1;
	int qsum = 0;
	//int bun = 0;
	
	while(qsum<201){
		qsum+=q;		
		q++;
		//bun++;
	}
	
	System.out.println(q+"번");
	*/
	
	int q = 0;
	int qsum = 0;
	//int bun = 0;
	
	while(qsum<201){
		q++;
		qsum+=q;		
		//bun++;
	}
	
	System.out.println(q+"번");
	
	//2120으로 바꾸려면 더해주는 타이밍을 바꿔줘야함. 증감타이밍을 바꿔야하니까 초기값도바꿈
	
	
	//이걸 더 쉽게 해주는 방법
	
	int sum2 = 0;
	int count2 = 1;
	
	while(true){
		sum2+=count2;
		//이 부분에 나가게 해야함! 횟수 더해지기 전에
		if(sum2>200){
			break;}
		count2++;
	}
	System.out.println(count2);
	//break 는 가장 가까운 반복문을 나간다..
	
	
	
	
	


	}	
}

line break point 

ctrl shift b > 디버깅모드F11

디버깅모드로 들어간다
브레이크포인트설정한거 다 뜸
우리가 선언ㅇ한 변수가 다 뜸
F6눌러서 다음문장으로 넘어가면 초기화되니까 dan에 값이 들어감
F6 누르면 다시 돌아감 (조건식만족안하므로)

 

'학원수업_basicJAVA > 3. Sentence' 카테고리의 다른 글

201013 Sentence 01  (0) 2020.10.13