有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在forloop中跳过数字

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

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

有什么建议吗


共 (5) 个答案

  1. # 1 楼答案

    添加一个带有“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);
    }
    

    关键字break将通过当前一轮循环进入下一轮循环

  2. # 2 楼答案

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

    IntStream.rangeClosed(32,255)
             .filter(i -> i < 128 || i > 159)
             .forEach(i -> System.out.println((char) i));
    
  3. # 3 楼答案

    添加一个if语句:

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

    有几种解决办法

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

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

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

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

     for(int i = 32; i <= 255; ++i){
       if(i>=128 && i <= 159) {
         continue;
       }
       // do your stuff
      }
    
  5. # 5 楼答案

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

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