[pythonベース]繰り返し文2(while文、break文)


1.同時ドア
1-1. while文の基本構造
변수 값 초기화

while 조건식:
    문장1
    문장2
    ...
    변수 값의 증가(또는 감소)
1-2. 例
# ex1. 1~10의 합계
sum = 0
i = 1

while i <= 10:
    sum += i
    print('i의 값 : %d => 합계 : %d' % (i, sum))
    i += 1
👉 실행 결과
i의 값 : 1 => 합계 1
i의 값 : 2 => 합계 3
i의 값 : 3 => 합계 6
i의 값 : 4 => 합계 10
i의 값 : 5 => 합계 15
i의 값 : 6 => 합계 21
i의 값 : 7 => 합계 28
i의 값 : 8 => 합계 36
i의 값 : 9 => 합계 45
i의 값 : 10 => 합계 55
問題を解く
  • 和を表す変数と0
  • に初期化する.
  • 同時に文の繰り返しループで使用する変数iを1
  • に初期化する.
  • iは1増加し、条件式i<=10が真である場合にのみwhile文が繰り返される
    (iが10より大きい瞬間、直ちに重複ゲートから脱出)
  • # ex2. 배수의 합계 구하기
    n1 = int(input('첫 수를 입력하세요 : '))
    n2 = int(input('끝 수를 입력하세요 : '))
    n = int(input('합계를 구하고자 하는 배수를 입력하세요 : '))
    
    sum = 0
    i = n1
    
    while i < n2+1:
        if i % n == 0:
            sum += i
            
        i += 1
       
    print('%d~%d까지의 정수 중 %d의 배수의 합계 : %d' % (n1, n2, n, sum))
    
    👉 실행 결과
    첫 수를 입력하세요 : 100
    끝 수를 입력하세요 : 300
    합계를 구하고자 하는 배수를 입력하세요 : 5
    100~300까지의 정수 중 5의 배수의 합계 : 8200
    問題を解く
  • 和を表す変数sumを0に初期化し、iをn 1
  • として保存する.
  • iは、値が終了数のn 2(=n 2+1未満)になるまで繰り返される.
  • iがnの倍数である場合、sum加iの累計合計は
  • となる.
    1-3. while文で文字列を処理する
    # ex3. 영어 모음과 개수 구하기
    s = input('영어 문장을 입력하세요 : ')
    
    i = 0
    count = 0
    
    print('모음 : ', end='')
    
    while i <= len(s)-1:
        if (s[i]=='a' or s[i]=='A' or s[i]=='e' or s[i]=='E' \
            or s[i]=='i' or s[i]=='I' or s[i]=='o' or s[i]=='O' \
            or s[i]=='u' or s[i]=='U'):
            
                count += 1
                print(s[i], end='')
        
        i += 1
        
    print('\n모음의 개수 : %d' % count)
    👉 실행 결과
    영어 문장을 입력하세요 : We are the champion
    모음 : e a e e a i o
    모음의 개수 : 7
    トラブルシューティング
  • 繰り返し文は0から始まるので、
  • (文字列の長さから1つ減算)繰り返します.
  • 、すなわち条件式i<=len(s)-1が真の場合、文は
  • を繰り返す.
  • if条件式の「コレクション」から来たかどうかをチェックし、もし本当ならcountに1を加え、
  • を出力する.
  • 反スラッシュ(\)マルチラインコード用
    2.ドアを破る
    2-1. 概要
    for文やwhile文を使用する場合、繰り返しループを実行する過程でループを終了したい場合がよくあります.この場合はbreak文を使用し、通常if文とともに使用されます.
    2-2. ドアを破る
    for i in range(1, 1001):
        print(i)
        
        if i == 10:
            break
    👉 실행 결과
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    問題を解く
  • for文から1から1000まで繰り返し文を実行し、毎回iを出力します.
  • iが10の場合、breakによって重複文が終了する.
  • そのため、1から1000までの繰り返しはすべて行われず、10までの瞬間、繰り返し文は
  • から逃れる.
    2-3. 戸を破って入る
    上記の例に示すように、while文でもbreakで1~10を出力しようとします.
    i = 1
    
    while True: # 조건식: True. 무한 반복을 의미
        print(i)
        i += 1
        
        if i == 11:
            break
    👉 실행 결과
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    問題を解く
    出力は
  • 1から開始するので、i=1は
  • に設定.
  • while文条件式はTrueであり、無限ループを表す.break文がないと重複文から脱出できません
  • 1が増加するごとに、出力iは、iが11の場合、ドアが逃げる
    (iが10の前にprint文を実行する必要がある)