Java - 跳过for循环中的值

问题描述 投票:2回答:8

我试图使用for循环跳过值。就像是

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

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

}

有什么建议?谢谢!

java for-loop
8个回答
11
投票

在循环开始时使用它:

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

这比简单地继续好多了。你不想迭代超过128到159;你会浪费时间。


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);
}

3
投票

为了完整,这也是可能的

for (int i = 32; i <= 255; i = (i == 127 ? 160 : i + 1)) {
    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;
    }
}

1
投票

或者像测试函数一样将测试添加到循环中:

for(int i = 32; i <= 255; i++) if (i < 128 || i > 159) {
    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);
        }
    }
}

0
投票

你可以在你的循环中添加一个if语句.-

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

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); 
    }
© www.soinside.com 2019 - 2024. All rights reserved.