

このプログラムの場合表示される数値って5050ではないのですか？

[code]

    public class Sum { 
        static int sum = 0;  
        public static void main(String[] args) {   
            for (int i = 1, sum = 0; i <= 100; i++) {   
                sum = sum + i;    
            }  
            System.out.println("sum="+ sum); 
        } 
    }  
    
[/code]


CC BY-SA 4.0
2021-04-20T11:53:56.720
75403
2021-04-21T16:30:46.800
2021-04-21T16:30:46.800
3060
44922
question
java
for ループの計算結果で表示される値が想定と違う


for ループの `, sum = 0` が余計ですね。

[code]

    for (int i = 1; i <= 100; i++) {   
        sum = sum + i;    
    } 
    
[/code]

なら、ご想像通りです。

元の状態だと、for ループのブロック内のローカル変数として sum が定義され、`static int sum` の sum
とは別扱いです。そのためループを抜けると、ローカル変数 sum は関係がなくなり、println で初期値の 0 のままの static int sum
の値がプリントされます。


CC BY-SA 4.0
2021-04-20T12:04:22.040
75404
2021-04-20T12:04:22.040
7290
75403
answer