你註解寫得沒錯呀~~
研究迴圈之時,最好的辦法就是每層的結果列出來~
或者下中斷點去看,每次進去的值是多少
這樣感受較深
While改for的問題,其實你可以自己測試就知道了,還不大需要問~
另外,若有程式相關問題,可用下圖這功能輸入程式碼片段,不要用圖片比較好喔
如你註解處寫的,但在區塊內的 factor++
要移除,因已設置過
for(int factor = 1; factor <= x; factor++)
{
if (x % factor == 0)
{
answer += factor.ToString() + ",";
}
}
如果你的while的條件是可被計量的,比如
int c = 100;
while(c>0){
c -- ;
}
//或
int c = 100;
while(true){
if(c<=0) break;
c -- ;
}
才有可能改成改成for
for(int c = 100 ;c>0;c--){
Console.WriteLine(c);
}
//或
for(int c=0;c<data.length;c++){
Console.WriteLine(data[c]);
}
如果是無法計量的判斷,就沒辦法用for
想要知道怎麼改語法
第一步 要先知道語法邏輯是甚麼?
While:
int index = 0;
int number = 9;
while(index<number){
// TODO: ex
// if(index == 0){
// index++;
// }else if(index == 1)
// {
// index = index+2
// }else{
// index = index+3
// }
}
小括號:當判斷式為True時,進入大括號
大括號:當//TODO執行完後,再次回到小括號,以此類推
For
int number = 9;
for(int index=0; index <= number; index++){
//TODO
}
小括號:
宣告一個index變數,判斷式為True時,執行大括號
大括號:
當//TODO執行完後,執行小括號最後的部分"index++",
再去執行判斷式,以此類推
也就是說,while跟for最大的差別為,被當作基準的變數,變化是否一樣