반응형

while문이란?

조건식이 참(True) 인 동안 반복해 배루 소스코드를 수행하고, if 문과 동일하게 while문 다음에 조건이 오며, : 으로 조건이 종료됐음을 인지시킵니다. 조건식은 소스코드를 수행하기전 수행하여 , 그 이후 소스코드를 수행한 후 다시 따집니다.

 

형태는 다음과 같습니다.

while 조건식:
	소스코드
    

 

 

Ex 1)

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
= 1
while a <= 5:
    print(a, end = ' ')
    a += 1
 
colors = ['r''g''b']
= 0
while a < len(colors):
    print(colors[a], end = ' ')
    a += 1
    
print()
while colors:
    print(colors.pop(0), end = ' ' )
    
print()

 

출력 결과

 

 

 

Ex 2)

 

1
2
3
4
5
6
7
8
9
10
11
= 0
while a < 10:
    a += 1
    if a == 5:
        continue
    if a == 7:
        break
    
    print(a)
else:
    print('while 수행')

 

출력 결과

 

 

 

 

 

 

Ex 3)

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import random
num = random.randint(110)
print(num)
# while 1000: 무한루프 while: 0 안돌아감  숫자 0은 false 제외 나머지 true
 
while 1:
    print('1 ~ 10 사이의 컴이 가진 숫자를 입력하시오')
    guess = input()
    su = int(guess)
    if su == num:
        print('성공 ~~~ ' * 5)
        break
    elif su < num:
        print('더 큰 수 입력')
    elif su > num:
        print('더 작은 수 입력')
 

 

출력 결과

 

 

반응형

'python' 카테고리의 다른 글

python - 함수  (0) 2020.05.07
python - 반복문 (for)  (0) 2020.05.07
python - 제어문 ( if )  (0) 2020.05.07
python - 정규 표현식  (0) 2020.05.07
python - 집합형 자료 ( Tuple , Set , Dict )  (0) 2020.05.07
반응형

3의 배수와 5의 배수의 개수와 그들의 합을 구하는 문제

 

 

int x, y = 0;    
int hap = 0;
    
    for(x=1; x<=100; x++) {
        if(x % 3 == 0 && x % 5 == 0) {
            y+=1;
            hap += x;
        }
    }
    System.out.println("개수 : " + y + " 합 : " + hap);
 
// 결과값
 
// 개수 : 6 합 : 315
 
 

 

 

변수 x와 y그리고 hap 의 값을 0으로 초기화시켜줍니다.

x는 수1의배수와 수2의 배수를 알기 위한 변수로 사용되고,

y는 그들의 개수를 누적해주는 역할을 합니다.

if문에서 x의 조건을 만족하는 경우 hap에 누적해줍니다.

 

for문과 if문을 이용

x의 값을 3으로 나는 나머지가 0이고

x의 값을 5로 나눈 나머지가 0이라면

개수(변수) y 는 숫자 1을 증가 시켜주고, 그 숫자를 hap에 누적해준다.

 

해당 과정을 x가 100이 될때까지 반복 수행할 수 있도록 합니다.

 

반응형
반응형

프로그래밍을 하는 사람들이라면 누구나 한번쯤은 해보았을법한 문제입니다.

2 x 1 = 2

2 x 2 = 4

.

.

.

2 x 9 = 18

이런식으로 9단까지 반복하는 문제입니다.

밑의 소스를 확인해보겠습니다.

 

i는 1부터 9까지 반복하고 j는 2부터 9까지 반복합니다.

i가 1일때 j는 2부터 9까지 가로로 출력해주고 내부 for문을 빠져나와서 외부 for문을 1증가시킵니다.

i가 2일때 j는 2부터 9까지 위와 같은 과정을 반복하고

i가 9까지 반복할 수 있도록 합니다.

 

for(i = 1; i <=9; i++) {
            for(j = 2; j <= 9; j++) {
                System.out.print(j + " * " + i + " = " + i*+ "   ");
            } System.out.println();
        }
 
 
// 결과값
 
// 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   

 

반응형
반응형

반복문

 

for문

반복 횟수가 정해져 있는 문장을 실행할 때 사용

예를 들도록 하겠습니다

        int a;
        int sum=0;
        
        for (a = 1; a <= 10 ; a+=2) { //for( 초기; 조건; 증감) for문은 초기치와 목적치에만 영향을 받게 해줘야 함
            System.out.print(a + " ");
            sum += a; // 누적        
       }

해당 소스를 보면 변수 a는 1부터 10까지 2씩 증가한다는 조건을 확인할 수 있습니다.

 

        System.out.println("\nfor 탈출 후 a값은 ? " + a);
        System.out.println("합은 " + sum);

1 3 5 7 9 를 출력하게 된다.

 

 

다른 몇가지 예를 들어보겠습니다.

 

 

1) for문을 통하여 아스키코드 대문자 A - Z 를 출력하는 방법을 보여드리겠습니다.

 

for(int i = 65; i <=99; i++) {
            System.out.print((char)i + " ");
        }
 

i가 출력문에서 65가 들어가야하지만 앞에 (char)로 형 변환을 주었기 때문에 A를 출력하게 된다.

그러므로 결과값은 

 

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c 과 같이 출력 된다.

 

 

 

2) 거꾸로 아스키코드 문자를 정수로 출력하는 반복문을 실행해보겠습니다.

 

for(int i = 'A'; i <= 'Z'; i++) {
            System.out.print((Integer)i + " ");
        }
 

출력문에서 i가 A부터 출력 되어야 하지만 앞에 (Integer)로 형 변환을 주었습니다.

그러므로 이번 결과값은 다음과 같습니다.

 

65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 

 

 

 

3) 증감식을 다르게 주어보겠습니다.

 

for(int i = 90; i >=65; i-=2) {
            System.out.print((char)i + " ");
        }
 

이번에는 i의 조건이 90부터 65까지 줄어드는 것을 반복합니다. 그런데 증감식을 확인해보면 2씩 줄어들고 출력에서 형 변환을 준 것을 볼 수 있습니다. 그렇다면 이번 결과값은 다음과 같습니다.

 

Z X V T R P N L J H F D B 

 

 

 

4) for문 안에 초기값과 증감식을 2개씩 줘보겠습니다.

 

for(int a = 0, b = 5; a <= 5; a++, b++) {
            System.out.println(a + " " + b);
        }
 

 

초기값을 각각 a = 0 과 b = 5 주고 a++ , b++ 로 1씩 증가시키면

0 5
1 6
2 7
3 8
4 9
5 10

과 같이 출력됩니다.

a가 만족하는 값 5까지 반복하고 for문을 탈출합니다.

 


 

다중 for문

 

 

for문 안에 for문에 들어가있는 것을 다중 for문이라고 합니다.

바로 예를 들어보도록 하겠습니다.

for(int m = 1; m <= 3; m++) {
        System.out.println("m : " + m);
        for(int n = 1; n<=4; n++) {
            System.out.print("n = " + n);
        }
        System.out.println();
    }
r

돌아가는 방식은 이렇습니다.

 

- m이 1인 경우 m 값을 출력하고 다음 for문으로 들어갑니다.

- n이 1부터 시작하고 for문이 만족하는 4까지 반복 출력해주고 내부 for문을 빠져나갑니다.

위와 같은 과정을 m이 3이 될 때까지 반복하고 나옵니다.

 

출력값은 다음과 같습니다.

 

m : 1
= 1n = 2n = 3n = 4
m : 2
= 1n = 2n = 3n = 4
m : 3
= 1n = 2n = 3n = 4

continue문

 

ex: for(초기값; 조건식; 증감식) {
        for(초기값; 조건식; 증감식) {
            
            실행문;
            continue// 안쪽 for문으로 이동            
            continue// ex for문으로 
        }
    }

 

 

여기서 ex는 라벨로 별명을 주어준것과 비슷한 의미이다.

 

 

for(int aa = 1; aa <= 10; aa++) {
            
        if(aa == 3continue;  // aa가 3이면 하단 문맥을 생략하고 다시 위로 올라감
        
        System.out.println(aa);
        
        // if(aa == 5) return; // return을 만나면 메인의 중괄호를 끝냄
        if(aa == 5break// 해당되는 구간에서 반복문을 탈출 시킴
        System.out.println("nice");
   }

 

결과

1
nice
2
nice
4
nice
5
nice
6
nice
7
nice
8
nice
9
nice
10
nice
 

break문

 

가장 가까운곳의 반복문이나 다음에 나올 내용인 switch문을 빠져나간다.

 

continue 설명때 사용한 소스코드에서 break문을 사용해보도록하겠습니다.

for(int aa = 1; aa <= 10; aa++) {
            
            if(aa == 3continue;
            
            System.out.println(aa);
 
            if(aa == 5break// 해당되는 구간에서 반복문을 탈출 시킴
            System.out.println("nice");
        }
 

 

결과값

 

1
nice
2
nice
4
nice
5

while문

 

같은 반복문이지만 for문과 달리 조건이 만족할때만 반복한다.

 

        int w = 1;
        
        while(w <= 5) {
            System.out.println("w : " + w);
            w++// 반복문 탈출 문장이 반드시 필요
        }
 

 

w의 초기값은 1로 주어졌으며, 5가 되기전까지 만족하므로 반복하여 실행하게 된다.

 

w : 1 
w : 2 
w : 3 
w : 4 
w : 5 

do ~ while문

 

while문과 동일하지만 차이점이 있다면 do~while문은 조건식이 뒤에주어집니다.

 

        w = 1;
        do {
            System.out.println("w = " + w );
            w++;
        }while(w<= 5);
 
 
결과값은동일합니다.
 
= 1
= 2
= 3
= 4
= 5

 

반복문에 관련하여 공부한 문제

2020/03/03 - [JAVA/JAVA 프로그래밍 응용] - for문을 이용하여 어떤 수1의 배수이면서 수2의 배수의 개수와 그들의 합

2020/03/03 - [JAVA/JAVA 프로그래밍 응용] - for문을 이용한 구구단 찍기

반응형

'JAVA > JAVA' 카테고리의 다른 글

6 - 클래스 ( class )  (0) 2020.03.03
5 - 배열(Arrary)  (0) 2020.03.03
4 - 조건문 if & switch  (0) 2020.03.03
2 - 연산자  (0) 2020.03.03
1 - 데이터 타입 & 형 변환  (0) 2020.03.02

+ Recent posts