グローバル変数とローカル変数について
ねむねむさん
(No.1)
グローバル変数にx=2と設定されており、proc1を実行した場合のxのyの出力結果を教えてください。
proc1
y=1
proc2を呼び出す
x=x-1
y=y-1
-------
proc2
x=x+1
y=3
このようなコードの場合はproc2にはreturnがないため、実行結果としてはx=1、y=0になるのでしょうか?
ローカル変数が優先されるのはわかるのですが、呼び出した先の変数の扱いがわからないため教えてほしいです。
proc1
y=1
proc2を呼び出す
x=x-1
y=y-1
-------
proc2
x=x+1
y=3
このようなコードの場合はproc2にはreturnがないため、実行結果としてはx=1、y=0になるのでしょうか?
ローカル変数が優先されるのはわかるのですが、呼び出した先の変数の扱いがわからないため教えてほしいです。
2024.07.31 10:33
y4 kさん
★FE ブロンズマイスター
(No.2)
『グローバル変数にx=2と設定されており、』
示されているのがこれだけなら、プログラムの動作が変わる場合があります。
というのも、Python等ではグローバル変数と同名のローカル変数を使用できるからです。
ちなみにPythonで動作させた所
1) proc1, proc2共にxはグローバル変数とした場合x=2, y=0でした
2) xはproc1のみグローバル変数, proc2ではローカル変数とした場合x=1, y=0でした
御質問が何かの問題に基づいているのであれば、作問者は考慮が足りていない気がします。
示されているのがこれだけなら、プログラムの動作が変わる場合があります。
というのも、Python等ではグローバル変数と同名のローカル変数を使用できるからです。
ちなみにPythonで動作させた所
1) proc1, proc2共にxはグローバル変数とした場合x=2, y=0でした
2) xはproc1のみグローバル変数, proc2ではローカル変数とした場合x=1, y=0でした
御質問が何かの問題に基づいているのであれば、作問者は考慮が足りていない気がします。
2024.07.31 11:50
広告
返信投稿用フォーム
スパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
広告