Java 在for循环中跳过数字

Java 在for循环中跳过数字,java,for-loop,Java,For Loop,我尝试使用for循环跳过值。差不多 for (int i = 32; i <= 255 /* - but skip 128 to 159 */; i++) { char ascii = (char) i; System.out.println(ascii); } for(int i=32;iif(i>=128&&i如果不想将循环分成两个循环(每个循环都有自己的范围),可以使用Streams: IntStream.rangeClosed(32,255)

我尝试使用for循环跳过值。差不多

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

for(int i=32;i
if(i>=128&&i如果不想将循环分成两个循环(每个循环都有自己的范围),可以使用
Stream
s:

IntStream.rangeClosed(32,255)
         .filter(i -> i < 128 || i > 159)
         .forEach(i -> System.out.println((char) i));
IntStream.rangeClosed(32255)
.filter(i->i<128 | | i>159)
.forEach(i->System.out.println((char)i));
添加一个if语句:

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

存在几种解决方案

首先,您可以创建2个循环(1个从32到127,1个从160到255)

-->这可能对你的情况太具体了

第二,你可以创建一个包含你想要覆盖的索引的数组,然后你可以在数组上循环

第三,您可以使用关键字
continue
跳过未经请求的迭代

 for(int i = 32; i <= 255; ++i){
   if(i>=128 && i <= 159) {
     continue;
   }
   // do your stuff
  }
for(int i=32;i=128&&i添加一个带有“break”关键字的条件,如下所示:

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

用于(int i=32;i 128&&i写两个循环。请解释你的答案,而不是仅仅发布代码否,这是
继续
…就像Adam的答案一样,这并没有解释做了什么以及为什么。就我个人而言,我不喜欢在另一个代码块中执行主代码,
如果…继续
,则会非常清楚地表明代码被跳过。当前,您在
if
块后面有一部分
for
块仍在执行,即使该块当前为空。创建单独的答案,而不是这样做。当前所有答案都是一个;然后我们可以投票支持我们喜欢的解决方案,这是我们无法支持您的答案的。还有70个points在被愚弄的时候被欺骗了,希望你对他们感到高兴。我希望有这么多声望的人会首先寻找被愚弄的人,而不是喜欢触发的帖子。
for(int i = 32; i <= 255 - but skip 128 to 159; i++) 
{
    if(i>128 && i<159){
        break;
    }
    char ascii = (char) i;
    System.out.println(ascii);
}