iT邦幫忙

1

初學程式語言~~~~請問C# while 如何改成for? 感謝各位前輩指導><

  • 分享至 

  • xImage

(真的好希望自學時身邊有個老師可以請教阿...)
https://ithelp.ithome.com.tw/upload/images/20210823/201409023bPQGDTlhm.jpg

yayapipi iT邦新手 5 級 ‧ 2021-08-23 19:46:46 檢舉
應該就是你注釋寫的那樣
不過記得把裡面的factor++刪掉,才不會重複加兩次
annajhan iT邦新手 5 級 ‧ 2021-08-24 09:17:22 檢舉
謝謝大大~
我當時也有把裡面的factor++刪掉,可是跑出來都迴圈一次而已...
然後我剛剛重新打開再跑,又正確了........
不知道為什麼會這樣,所以當時百思不得其解><
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
2

你註解寫得沒錯呀~~

研究迴圈之時,最好的辦法就是每層的結果列出來~
或者下中斷點去看,每次進去的值是多少
這樣感受較深

While改for的問題,其實你可以自己測試就知道了,還不大需要問~

另外,若有程式相關問題,可用下圖這功能輸入程式碼片段,不要用圖片比較好喔
https://ithelp.ithome.com.tw/upload/images/20210823/20135501gjm0cRmPn5.jpg

annajhan iT邦新手 5 級 ‧ 2021-08-24 09:21:30 檢舉

哈哈~了解~謝謝大大~~~~^^
結果好像是我軟體bug吧....昨天跑幾次都只有迴圈一次...剛剛重新啟動去跑又正確了....(昨天我思考好久好久...改了好久好久><唉

程式寫久了,常有這種事,尤其現在的月份..../images/emoticon/emoticon01.gif

annajhan iT邦新手 5 級 ‧ 2021-08-24 11:21:46 檢舉

哈哈!讓我昨天挫折好久 ,如果是這樣的話我還比較寬心~XDDD

0
白熊
iT邦新手 2 級 ‧ 2021-08-23 23:07:31

如你註解處寫的,但在區塊內的 factor++ 要移除,因已設置過

for(int factor = 1; factor <= x; factor++)
{
    if (x % factor == 0)
    {
        answer += factor.ToString() + ",";
    }
}
annajhan iT邦新手 5 級 ‧ 2021-08-24 09:23:12 檢舉

謝謝大大~~~^^
已跑成功了~~~

0
japhenchen
iT邦超人 1 級 ‧ 2021-08-24 08:08:49

如果你的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

annajhan iT邦新手 5 級 ‧ 2021-08-24 09:25:21 檢舉

好的~謝謝大大~目前已跑成功了^^

0
qaz11226633
iT邦新手 4 級 ‧ 2021-08-24 08:34:46

想要知道怎麼改語法
第一步 要先知道語法邏輯是甚麼?
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最大的差別為,被當作基準的變數,變化是否一樣

annajhan iT邦新手 5 級 ‧ 2021-08-24 09:26:46 檢舉

感謝大大~~~^^
已跑成功了~~~

我要發表回答

立即登入回答