[問題] 關於判斷最少次的寫法

看板java作者 (SUPERTHREEPPP)時間13年前 (2011/04/01 11:28), 編輯推噓2(207)
留言9則, 7人參與, 最新討論串1/1
有個程式寫法的問題想請教, 有一段程式是印出0到10之間的整數,但不包含使用者輸入的值,如下: import java.util.Scanner; public class test { public static void main(String[] args) { int index; Scanner scanner = new Scanner(System.in); index = scanner.nextInt(); for(int i=0; i<=10; i++){ if(index == i) continue; //跳過本身 System.out.println(i); } } } 我的問題在於 if(index == i) continue; 這一行,如果index = 1 之後i從2到10 if還是會判斷9次,覺得有點浪費時間, 有沒有那較好的寫法是,如果if(index == i)有找到了, 之後不管i要跑幾次,都不用再來if這裡做比對? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.70.117.140

04/01 12:15, , 1F
if 判斷式之後若只有一行,最好不要合併; 然後如果要省時
04/01 12:15, 1F

04/01 12:16, , 2F
除非你要判斷一千萬筆再來考慮要不要省下這個判斷
04/01 12:16, 2F

04/01 12:16, , 3F
先加好0~10,再減去使用者輸入的值
04/01 12:16, 3F

04/01 12:16, , 4F
a沒必要省這種時間
04/01 12:16, 4F

04/01 13:02, , 5F
當然0~10只是個例子,若資料量有近億筆,這個if就很礙事
04/01 13:02, 5F

04/01 13:05, , 6F
if 判斷式之後只有一行,最好不要合併->可以請教為什麼嗎
04/01 13:05, 6F

04/01 13:16, , 7F
拆成兩個 for 吧,這樣就不用 if 了
04/01 13:16, 7F

04/01 14:38, , 8F
同意樓上,用兩個loop
04/01 14:38, 8F

04/01 21:51, , 9F
不要合併是怕為了漏看吧
04/01 21:51, 9F
文章代碼(AID): #1DbKPJmk (java)