ex;

** 2단 **

2 * 1 = 2

2 * 2 = 4

.

.

.

2 * 9 = 18

---------

** 3단 **

3 * 1 =3

.

.

.

 

분석 : 2~9단까지 8번 반복

2 가 출력될때 1~9까지 9번 반복.

총 72번이 반복되어야함.

 

int dan, n;

for (dan=2; dan<10; dan++) {

System.out.printf("** %d단 **\n", dan);

for (n=1; n<10; n++){

System.out.printf("%d * %d = %d\n", dan, n, dan*n);

}

System.out.println("-------");

}

for (int i=1; i<=3; i++) {

System.out.println("i:"+i);  // 이 print문은 i=1, i=2, i=3 일때가 나오므로 총 3번이 나옴.

for(int j=1; j<=i; j++) {

System.out.println("i:"+I+", j:"+j); // 이 print문은 i=1일 때 1번, i=2 일 때 2번, i=3일때 3번 나옴.

} // 즉 i=1일때 for 1번 실행, i=2일때 for 2번 실행 ...

System.out.println("--------"); // 이 print문은 i=1, i=2, i=3 일때가 나오므로 총 3번이 나옴.

}

1~100까지 홀수합

int s=0;

for (int n=1; n<=100; n+=2) {

s+=n;

}

for (초기식 ; 조건 ; 증가식) {}

초기식이 조건을 만족하면 {}를 실행하고 증가한다.

 

1~100까지 짝수합

int s=0;

for (int n=2; n<=100; n+=2) {

s+=n;

}

1~100까지 3의 배수의 합

int s=0;

for (int n=3; n<=100; n+=3) {

s+=n;

}

while은 처음조건이 false면 한도 while안을 실행하지 않는다.

do while은 적어도 한번은 실행한다!

int n, s;

n=s=0;

 

while (s<100) {

n++;

s+=n;

}

System.out.printf("n = %d, s = %d\n", n, s);

===============================================

do{

n++;

s+=n;

} while(s<100);

System.out.printf("n = %d, s = %d\n", n, s);

===============================================

 

복습

제어문

while문
-형식
while(조건식) {
실행문;
}

- 조건식의 결과는 반드시 true 또는 false (boolean이어야 한다.)
- 처음 조건식이 거짓이면 한번도 실행하지 않음 
- 조건식이 만족할 때 수행되는 실행문이 한 개인 경우에는 ({})생략 가능.
- while(true)와 같이 조건식을 true로 설정하면 무한 루프.
- while문 안에 또 다른 while문이나 다른 반복문 사용 가능.

입력받은 값이 

예를 들어 

100라면 3자리 정수이다.

10으로 3번 나눗셈을 하게되면

0.100 이것은 int에 저장하지 못해 0이 된다.

따라서 입력받은 값이 0이 아니면 계속 나누기 10을 해주고

나누기를 한번 해줄 때마다 n에 1을 더해준다.

 

합이 100이상이되는 최소의 수를 구하기 위해서 s<100

s<=100이면 100이상이 되는 두번째 수이다. 

최소의 수는 n으로 카운팅을 하고

합의 경우

홀수면 더하기 짝수면 빼기 이므로 

if (n%2==0) {

s+=-n;

} else {

s+=n;

}

으로 준다.

++

1부터 시작이고 2는 빼고 3는 더하고를 반복해야하므로. 

 

+ Recent posts