在循环中跳过数字

Kar*_*dhi 2 java for-loop

我正在尝试使用for循环跳过值。就像是

for (int i = 32; i <= 255 /* - but skip 128 to 159 */; i++) 
{
    char ascii = (char) i;
    System.out.println(ascii);
}
Run Code Online (Sandbox Code Playgroud)

有什么建议么?

Ada*_*dam 8

if(i >= 128 && i <= 159){
  // Will skip all these values.
  continue;
}
Run Code Online (Sandbox Code Playgroud)

您可以continue在Java的任何循环中使用关键字,这将导致控制流回到直接父循环。因此,对于您而言,对于介于128和159之间的所有i值,将永远不会执行下面的代码块。或者,如果您不喜欢此解决方案,则可以编写两个for循环并排除它们之间的范围,但是,如果您希望跳过多个范围或在其上施加更具体的条件,则可以说这更易于阅读,并且具有更大的灵活性。何时跳过的值i

  • 请说明您的答案,而不是仅发布代码 (2认同)

Era*_*ran 6

如果您不想将循环分为两个循环(每个循环都有自己的范围),则可以使用Streams:

IntStream.rangeClosed(32,255)
         .filter(i -> i < 128 || i > 159)
         .forEach(i -> System.out.println((char) i));
Run Code Online (Sandbox Code Playgroud)