2016-02-21 28 views
0

我有一个for循环检查值%i的结果。在里面,有一个if语句检查值%i = 0。如果它确实等于零,它将boolean isDivisible设置为true。如果它返回一个非零值,那么它将设置为false。问题是,例如,如果值为12,,则某些尝试将返回0,而有些将不为零,因此可见性会不断变化不准确。我希望循环结束一次值%i = 0。这样的事情可能吗?如果一次遇到值就停止一次循环

for (int i=2; i < value; i++){ 
      if (value % i == 0){ 
       isDivisible = true; 
      } 
      else{ 
       isDivisible = false; 
      } 
     } 
     if (isDivisible = true){ 
       System.out.println(value + " is prime"); 
      } 
+0

所以你想使用'break;'打破循环? –

+0

我看不到你在你的代码中的任何地方......' –

+1

isDivisible = true; 休息; – Rehman

回答

1
isDivisible = false; 
for (int i=2; i < value; i++){ 
    if (value % i == 0){ 
     isDivisible = true; 
     System.out.println(value + " is divisible"); 
     break;//loop break when divisible 
    } 
} 
0
for (int i=2; i < value; i++){ 
      if (value % i == 0){ 
       isDivisible = true; 
       break; 
      } 
      else{ 
       isDivisible = false; 
      } 
     } 
     if (isDivisible = true){ 
       System.out.println(value + " is prime"); 
      } 
0

我想你想使用break;

break;停止循环的当前执行并退出。

for (int i=2; i < value; i++){ 
     if (value % i == 0){ 
      isDivisible = true; 
      break; 
     } 
     else{ 
      isDivisible = false; 
     } 
    } 

正如你在这里看到的,你不需要那第二条语句。

0

IsDivisible = true;打破;

我也可以C-UR的代码将无法编译罚款 在过去,如果我们构建的==而不是= 在java中它需要一个布尔EXPR里面的if语句

0

当然使用break的标准方式。另一种选择是:

isDivisible = false; 
for (int i=2; i < value && !isDivisible; i++){ 
    if (value % i == 0){ 
     isDivisible = true; 
    } 
} 

此外,你只需要迭代到Math.sqrt(value)

相关问题