Java中一個for語句招致無限年夜逝世輪回的例子。本站提示廣大學習愛好者:(Java中一個for語句招致無限年夜逝世輪回的例子)文章只能為提供參考,不一定能成為您想要的結果。以下是Java中一個for語句招致無限年夜逝世輪回的例子正文
在Java開辟中經常使用到For輪回,它對簡化營業處置,進步效力,異常有贊助。但要避免法式算法中能夠招致逝世輪回的情形,並且有的逝世輪回還欠好發覺。好比上面這個例子,算法極輕易以為是50,現實上是無限年夜的一個逝世輪回。
public class CycTest { /** * @param args the command line arguments */ public static void main(String[] args) { int end = Integer.MAX_VALUE; //界說個輪回終止數,可以無窮年夜,差別於int型。 int start = end-50; //界說肇端值 int count = 0; //初始值 for(int i=start;i<=end;i++){ //輪回體 count++; //輪回計數 System.out.println("本次輪回次數為:"+count); //輸入 } } }
輸入成果:
run: 本次輪回次數為:1 本次輪回次數為:2 本次輪回次數為:3 ...... 本次輪回次數為:49 本次輪回次數為:50 本次輪回次數為:51 ......
總結:
能夠有人以為輸入成果會是50次,現實上這是個逝世輪回。end是無窮年夜的數,i<=end也就是無窮年夜的數。所以說是無極限的。for(int i=start,i<end;i++),成果就是50了。i<end,表現界限值不克不及是一個無限年夜致, 而從start到end也就釀成了一段區間了,區間就是50。所以開辟中斟酌到各類數據類型的取值規模,特殊是前提斷定及界限取值時。