当我将System.out.println("Looping: " + i);
放在for in
方法的开头时,我在理解循环方面遇到了问题。
它循环三次,比平时更多,例如13号,它说:
Looping: 2 , Looping: 2, Looping 3.
但是,如果我将System.out.println("Looping: " + i);
放在for in
方法的末尾,则会显示:
Looping 2, Loopin 3
这对我的理解更准确。
为什么会这样?
public static void main(String[] args) {
int counter = 0;
for(int i=1; i <= 10; i++){
if(isPrime(i)){
System.out.println("The number: " + i + " is a prime number");
counter++;
}
if(counter==3){
break;
}
}
public static boolean isPrime(int n){
if(n == 1){
return false;
}
for(int i=2; i <= (long) Math.sqrt(n); i++){
System.out.println("Looping: " + i);
if(n%i == 0){
return false;
}
}
return true;
}
答案 0 :(得分:0)
我们来看看这段代码:
public static boolean isPrime(int n){
if(n == 1){
return false;
}
for(int i=2; i <= (long) Math.sqrt(n); i++){
System.out.println("Looping: " + i); // first
if(n%i == 0){
return false;
}
System.out.println("Looping2: " + i); // second
}
return true;
}
它的输出是:
Looping: 2
Looping: 2
Looping2: 2
如您所见,第一个System.out.println
执行了2次而第二个只执行了一次。这是因为
if(n%i == 0){
return false;
}
如果n%i == 0
提供true
,则方法将return false
和for loop
停止执行。这就解释了为什么放置System.out.println
的位置会有所不同。
您将获得更多有用的信息here。