对于同一个条件使用for或while有区别码,有效率的问题码??for(int i=0;i<99999999;i++){
doSth();
}int i=0;
while(i<99999999){
doSth();
}int i=0;
while(true){
if(i<99999999){
doSth();
continue;
}
break;
}请教对于上述的循环有没有效率的问题??
doSth();
}int i=0;
while(i<99999999){
doSth();
}int i=0;
while(true){
if(i<99999999){
doSth();
continue;
}
break;
}请教对于上述的循环有没有效率的问题??
更改完后进行测试如下所示:
package questions;
//下面哪个运行更有效率
public class TestFor2 {
public static void main(String[] args) {
long begin=System.currentTimeMillis();
for(int i=0;i <1000000000;i++){
;
}
long end=System.currentTimeMillis();
System.out.println(end-begin);
begin=System.currentTimeMillis();
int i=0;
while(i <1000000000){ //注意i的范围
i++;
}
end=System.currentTimeMillis();
System.out.println(end-begin);
begin=System.currentTimeMillis();
i=0;
while(true){
if(i <1000000000){
i++;
continue;
}
break;
}
end=System.currentTimeMillis();
System.out.println(end-begin);
}
}
几次运行结果:(1)787 (2)828 (3)813 (4)812(5)796 (6) 796
782 813 797 797 797 829
781 812 812 828 813 796
更改完后进行测试如下所示:
package questions;
//下面哪个运行更有效率
public class TestFor2 {
public static void main(String[] args) {
long begin=System.currentTimeMillis();
for(int i=0;i <1000000000;i++){
;
}
long end=System.currentTimeMillis();
System.out.println(end-begin);
begin=System.currentTimeMillis();
int i=0;
while(i <1000000000){ //注意i的范围
i++;
}
end=System.currentTimeMillis();
System.out.println(end-begin);
begin=System.currentTimeMillis();
i=0;
while(true){
if(i <1000000000){
i++;
continue;
}
break;
}
end=System.currentTimeMillis();
System.out.println(end-begin);
}
}
几次运行结果:(1)787 (2)828 (3)813 (4)812(5)796 (6) 796
782 813 797 797 797 829
781 812 812 828 813 796
第二个和第三个不应该是死循环对于同一个条件使用for或while有区别码,有效率的问题码?? for(int i=0;i <99999999;i++){
doSth();
} int i=0;
while(i <99999999){
doSth();
i++;
} int i=0;
while(true){
if(i <99999999){
doSth();
i++;
continue;
}
break;
} 感谢4楼的测试,我也试过了,没看出来有很大的区别