Pythonを使ったプログラミング学習において、特定のコードの順番に関する疑問が出ることがあります。今回は「while文を使って1から100までの合計を計算するプログラム」における順番について解説します。この問題に関して、①と②の順番が逆でも成り立つのか、その理由を説明します。
問題:while文で1から100までの合計を計算
まず、問題文に記載されているプログラムを確認します。以下のように、whileループを使って1から100までの整数の合計を求めるプログラムです。
goukei = 0
i = 1
while i <= 100:
goukei = goukei + i # ①
i = i + 1 # ②
print(goukei)
順番を変えるとどうなるか?
質問者が疑問に思ったのは、①と②の順番を逆にしてもこのプログラムが動作するかという点です。Pythonでは、変数の更新順序が重要になります。まず、iの値が増える前にgoukeiにiを加算する必要があります。したがって、順番を逆にすると、最初の繰り返しでiが増加してしまい、計算結果に誤差が生じます。
順番が逆だとどうなるか?
もし順番を逆にした場合、つまりi = i + 1を先に実行すると、次のような事象が発生します。
goukei = 0
i = 1
while i <= 100:
i = i + 1 # ②
goukei = goukei + i # ①
print(goukei)
この場合、最初のループでiが1から2に増加し、goukeiに加算されるのは2になります。これが繰り返されるため、最終的な合計が間違ったものになります。
正しい順番で計算する理由
正しい順番は、まず「goukei = goukei + i」でiの値を加算し、その後「i = i + 1」で次の値に進むことです。この順番にすることで、1から100までの正しい合計が計算されます。もし順番が逆だと、iが更新された後にその値が加算されることになり、計算結果がずれてしまうのです。
まとめ
結論として、①と②の順番を逆にしては正しい結果を得ることはできません。プログラムの順番を正確に守ることが重要です。今回の問題では、goukeiにiを加算してからiを増やすのが正しい方法です。順番を守ることで、期待する結果が得られます。
コメント