[回到版面]
回應模式
名 稱
內 文
附加圖檔[] []
  • 可附加圖檔類型:GIF, JPG, JPEG, PNG, WEBM,瀏覽器才能正常附加圖檔
  • 附加圖檔最大上傳資料量為 3072 KB。
  • 當檔案超過寬 125 像素、高 125 像素時會自動縮小尺寸顯示
  • 目前附加圖檔使用量大小: 190996 KB / 500000 KB
  • 回覆時程式碼縮排會被trim消掉,請善用[code][/code]標色或貼到ideone等網站
  • LaTeX記法可以用「$$」或「\( \)」包起來,例如「$\sum_{k=1}^{k=n} k^2 = \frac{n(n+1)(n+2)}{6}$」
  • 投稿時請點擊畫像認證後,再按下 [送出] 按鈕提交。
  • 鬧板、攻擊性發言、煽動性發言請無視(回應者也無視),並使用del或在貓管理部向管理員回報。
  • 新介面尚處於測試階段,如果有任何問題可以向管理員或於程設交流版反映。

檔名:1551370540228.jpg-(29 KB, 480x360)
29 KB
無題無名19/03/01(五)00:15:40 ID:vuYtLHo.No.13002del
寫code寫到腦子突然抽了 java一問
int sum = 0;
for (int count = 1; count <= 10; count++)
sum += count;
System.out.println(sum);
在進入第二次迴圈之後 明明重新宣告變數count=1了
為什麼count的值依然是上一次迴圈的count+1?
如果是全域變數會++我能理解,因為沒有再重新宣告全域變數=初值了,但進入第二次迴圈明明重新宣告int count=1了啊?
無名19/03/01(五)04:36:09 ID:xzk4zuJANo.13003del
int count = 1
只會在for loop的一開始執行一次
無名19/03/01(五)11:33:21 ID:vuYtLHo.No.13004del
>>13003
我原po 這是for的特性嗎?
因為假設我寫一個while do-while的巢狀迴圈如下:
int left=1;
int right;
while(left<10) {
right=1;
do{System.out.print(left+"*"+right+"="+left*right+"\t");
right++;
}while(right<10);
System.out.println();
left++;
}
內層跑完回外層 外層跑第二圈還是會重新宣告right=1
無名19/03/01(五)11:39:11 ID:vuYtLHo.No.13005del
>>13004
訂正 全域不是 int right; 是int right=1;
無名19/03/01(五)13:06:20 ID:/u63Y/ckNo.13006del
>>13004
是 所有for風格迴圈都這樣
()內 int count = 1 只會執行一次

你舉的例子是你自己手動把right重新賦值
跟for的運作沒有任何關聯
無名19/03/01(五)15:43:05 ID:7kbFp/nMNo.13007del
每圈都回到初始值的話
這語法也太機掰了
無名19/03/01(五)17:23:45 ID:v3XK6wO6No.13008del
如果每次都會執行 int count = 1;
那for設計第一個參數有什麼屁用
直接寫在 for 的 { } 裡面不就好了
無名19/03/02(六)00:23:08 ID:AYJMMQlYNo.13009del
for (int count = 1; count <= 10; count++)
sum += count;

差不多相當於
int count = 1;
while(count <= 10){
sum += count;
count++
}

count=1在一整個for裡面只會被執行一次

沒有什麼特別的理由
for當初就是被定義成這樣
因為用count控制while的寫法很常用
就多設計了一個語法能把這種邏輯打包得更好看一點

>>13004
你這個有兩層迴圈,跟一開始那個只有一層for的邏輯不太一樣
你最好檢查一下你是不是搞混了什麼
無名19/03/02(六)09:07:12 ID:CdgvRN6YNo.13010del
>>13009
就......寫作業寫到腦子抽了
睡個一覺起來想想就理解了


【刪除文章】[]
刪除用密碼: