2013-04-08 97 views
1

我試圖跳過使用for循環的值。類似於Java - 跳過for循環中的值

for(int i = 32; i <= 255 - but skip 128 to 159; i++) { 

    char ascii = (char) i; 
    System.out.println(ascii); 

} 

有什麼建議嗎?謝謝!

回答

9

使用此:

for(int i = 32; i < 256; i++) { 
    if(i == 128) i = 160; 
    //... 
} 

這比簡單地繼續。你不想迭代128到159;你會浪費時間。

+1

沒有,你用if語句_START_。在循環的最開始,'if(i == 128)i = 160;'。這樣,一旦達到128,它就會變成160。 – Zyerah 2013-04-08 01:27:37

+0

謝謝,這工作完美! – 0101011 2013-04-08 01:57:20

3

您可以跳過您不想要的元素,像這樣:

for(int i = 32; i <= 255; i++) { 
    if (i >= 128 && i <= 159) continue; 
    char ascii = (char) i; 
    System.out.println(ascii); 
} 

或一分爲二的循環,像這樣的:在你的循環的開始

for(int i = 32; i <= 127; i++) { 
    char ascii = (char) i; 
    System.out.println(ascii); 
} 
for(int i = 160; i <= 256; i++) { 
    char ascii = (char) i; 
    System.out.println(ascii); 
} 
0

您可以添加一個if語句您loop.-

for(int i = 32; i <= 255; i++) { 
    if (i < 128 || i > 159) { 
     char ascii = (char) i; 
     System.out.println(ascii); 
    } 
} 
1
for(int i = 32; i <= 255 - but skip 128 to 159; i++) { 
    char ascii = (char) i; 
    System.out.println(ascii); 
    if(i == 127) { 
     i = 160; 
    } 
} 
0

我會做兩個環路內:

int MIN = 128; 
    int MAX = 159; 

    for(int i = 32; i < MIN ; i++) { 

    char ascii = (char) i; 
    System.out.println(ascii); 
} 

    for(int i = MAX + 1; i < 255; i++){ 
    char ascii = (char) i; 
    System.out.println(ascii); 
    } 
1

或者測試添加到像函數式語言的循環:

for(int i = 32; i <= 255; i++) if (i < 128 || i > 159) { 
    char ascii = (char) i; 
    System.out.println(ascii); 
} 
0

只是爲了完整性,這也是可能

for (int i = 32; i <= 255; i = (i == 127 ? 160 : i + 1)) { 
    char ascii = (char) i; 
    System.out.println(ascii); 
} 
1

下面是一些代碼:

public static void main(String[] args) { 
    for(int i = 32; i <= 255; i++) { 
     if (i < 128 || i > 159) { 
      char ascii = (char) i; 
      System.out.println(ascii); 
     } 
    } 
}