Java - 跳过for循环中的值

时间:2013-04-08 01:16:14

标签: java for-loop

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

这样的东西
for(int i = 32; i <= 255 - but skip 128 to 159; i++) {

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

}

有什么建议吗?谢谢!

9 个答案:

答案 0 :(得分:11)

在循环开始时使用它:

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

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

答案 1 :(得分: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);
}

答案 2 :(得分:3)

为了完整性,这也是可能的

In [11]: new_data = {}

In [12]: for key in data:
    ...:     _,_,k = key.rpartition('/')
    ...:     new_data.setdefault(k, []).append(key)
    ...:

In [13]: new_data
Out[13]:
{'0': ['0.0.0.0/0'],
 '16': ['100.68.0.0/16', '100.69.0.0/16'],
 '20': ['100.107.0.0/20', '100.107.64.0/20'],
 '22': ['100.107.0.0/22'],
 '24': ['100.107.0.0/24', '100.107.1.0/24', '100.107.2.0/24'],
 '32': ['100.107.0.31/32', '100.107.0.3/32']}

答案 3 :(得分: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;
    }
}

答案 4 :(得分:1)

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

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

答案 5 :(得分: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);
        }
    }
}

答案 6 :(得分:0)

您可以在循环中添加if语句.-

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

答案 7 :(得分: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); 
    }

答案 8 :(得分:0)

你可以试试这个:

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