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);
// 시작 : 1 끝 9 증가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+"번");
//21 을 20으로 바꾸려면 더해주는 타이밍을 바꿔줘야함. 증감타이밍을 바꿔야하니까 초기값도바꿈
//이걸 더 쉽게 해주는 방법
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






'학원수업_basicJAVA > 3. Sentence' 카테고리의 다른 글
201013 Sentence 01 (0) | 2020.10.13 |
---|