發表文章

目前顯示的是有「錯誤規避」標籤的文章

迴圈與習慣

當你用了很久的for迴圈,某天卻要用while迴圈,你是否也有這樣的經驗? 心理想著for迴圈 for (int x=0;x  for (int y=0;y   // processing....  } } 寫出的while是 int x=0,y=0; while (x  while (y   // processing....   ++y;  }  ++x; } 結果是錯的! 這是由於內部迴圈所使用的y變數,只有在整個迴圈的一開始作初始化的動作(歸零),因此內部迴圈只會作一次,之後不管外部迴圈跑幾次,它都不會再作內部迴圈。 正確的寫法是 int x=0; while (x  int y=0;  while (y   // processing....   ++y;  }  ++x; } 在程式主體必需要高度集中思考與大量程式碼的掩飾下,很容易就以為程式是在運算中出錯,而不是迴圈設定上,若是陷在這種基礎的思考中而不自知,會花費相當多的時間在debug,而且找到以後還會碎碎念:迴圈也會寫錯,還花這麼多時間。 2008-01-28 添加正確的迴圈寫法