2013-04-08 162 views
1

我试图跳过使用for循环的值。类似于Java - 跳过for循环中的值

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

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

} 

有什么建议吗?谢谢!

回答

9

使用此:

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

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

+1

没有,你用if语句_START_。在循环的最开始,'if(i == 128)i = 160;'。这样,一旦达到128,它就会变成160。 – Zyerah 2013-04-08 01:27:37

+0

谢谢,这工作完美! – 0101011 2013-04-08 01:57:20

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

您可以添加一个if语句您loop.-

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

或者测试添加到像函数式语言的循环:

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

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

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