プロが教える店舗&オフィスのセキュリティ対策術

プログラミングについて「プログラム実行中に、数値を入力し、その数値が変数kに保存します、変数kの数値の個数分の“Hello”を表示せよ。」という課題を課されていて、

①k = 0
②k = input('何個のHelloを表示しますか:')
③k=int(k) #kを整数に変換、繰り返し処理にこの整数のkを利用します。
④print(f'k = {"k"}')
while k>0:
print("hello")
k-=1

①②③④の列の部分は変化させずにwhileでinputの数分helloを出力したいです。どうすればよいのでしょうか。④以降の文では、なぜかhelloが無限に出てきてしまいます。
ご回答よろしくお願いします

A 回答 (3件)

④以降の文では、なぜかhelloが無限に出てきてしまうのは、while文の条件がk>0となっており、kが0より大きい間、while文が繰り返されるためです。

kが0以下になれば、while文は終了します。そのため、while文の条件をk>=0に変更すると、kが0以上の場合のみ、while文が繰り返されるようになります。

```
k = 0
k = input('何個のHelloを表示しますか:')
k = int(k)
print(f'k = {k}')
while k >= 0:
print('hello')
k -= 1
```

このコードを実行すると、入力した数値分、helloが表示されます。
    • good
    • 0
この回答へのお礼

ありがとうございました。非常に助かりました。

お礼日時:2023/06/09 15:40

このサイトに投稿するとインデントがくずれるので


下記にアップしました。
正しいインデントのソースは以下のようになります。
https://ideone.com/lYILlA
    • good
    • 0

rubyのカテゴリに投稿されていますが、rubyのようには見えません。


言語は何でしょうか。
    • good
    • 0
この回答へのお礼

大変失礼しました。pythonです

お礼日時:2023/06/09 15:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!