66225


以下のプログラムを無条件に5回実行したいので、以下のようにwhileループを使って実行してみました。  
しかし、5回で終わることなく、ずっと繰り返し実行されてしまいます。どうすれば5回のみのループにすることができますか？

コードは以下の通りです。

[code]

    qs=["What is your name?",
        "What is your favorite",
        "What is your queset?"]
    c=["trump","USA"]
    
    
    i=0
    while i<5:  
        a=input(qs)
    
        if a=="president":
            d=input(c)    
            if d=="handsum":
                print("great")
            else:
                print("you are fired")
        else: 
            print("bye")
    
        i += 1
    
[/code]


CC BY-SA 4.0
2020-05-03T00:57:38.323
66223
2020-05-03T04:20:30.860
2020-05-03T01:21:11.693
39688
39688
question
python
whileループでプログラムを任意の数だけ実行したい場合、どうすればいいでしょうか？


`i +=
1`が(`while`文と同一インデントであるため)`while`ループの外にあるように見えます。そのため、`i`が変化せず、無限ループになっていると思います。

`i += 1`を`while`ループの内側に配置すれば期待通りに動作すると思います。


CC BY-SA 4.0
2020-05-03T01:18:05.747
66225
2020-05-03T01:18:05.747
20098
66223
answer


今回は while で実装してみたとのことですが、通常このようなループは for で実装すると `i = 0` の初期化や `i += 1`
のインクリメントでミスをすることが無くなります。

[code]

    for i in range(5):
        a=input(qs)
    
        if a=="president":
            d=input(c)    
            if d=="handsum":
                print("great")
            else:
                print("you are fired")
        else: 
            print("bye")
    
[/code]


CC BY-SA 4.0
2020-05-03T04:20:30.860
66231
2020-05-03T04:20:30.860
19110
66223
answer