Java 而vs为循环

Java 而vs为循环,java,Java,这些基本相同吗 1) 当 inti=0,j=0; 而(i

这些基本相同吗

1) 当

inti=0,j=0;
而(i<10){
而(j<10){
}j++;
}i++;
2) 为了

for(int i=0;i<10;i++){
对于(int j=0;j<10;j++){
}
}

对编程来说还是个新手,我只是想知道。如果它们是一样的,哪一个效率更高?

不,它们不一样。 1是错误的,您将陷入while循环中,因为j++已超出该块。如果要使1执行与2相同的操作,则应更改为:

int i = 0, j = 0;  
while (i < 10) {
    j = 0; 
    while (j < 10) {
        ....
        j++;
    } 
    i++;
} 
inti=0,j=0;
而(i<10){
j=0;
而(j<10){
....
j++;
} 
i++;
} 

来这里之前先测试一下,然后你会发现一个循环是无限的-1甚至不先运行这段代码——我知道你在提问方面可以做得比这更好。您可以使它们等效,但是这些构造之间的效率没有差别。如果要包括流,可能会有性能差异(对于大于10的范围)。
for (int i = 0; i < 10; i++) {
    for (int j = 0; j < 10; j++) {
    }
}
int i = 0, j = 0;  
while (i < 10) {
    j = 0; 
    while (j < 10) {
        ....
        j++;
    } 
    i++;
}