如果满足一次值,则停止循环一次

Stop loop once if value is met one time

我有一个 for 循环检查值 % i 的结果。在内部,有一个 if 语句检查值 % i = 0。如果它等于 0,它将 boolean isDivisible 设置为 true。如果它 return 是一个非零值,它会将 isDivisible 设置为 false。问题是,例如,如果值为 12,some attempts will return 0 while some will be nonzero, isDivisible 不断变化不准确。我希望循环在值 % 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");
            }
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");
            }

我想你想使用中断;

休息;停止当前循环的执行并退出它。

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

正如您在此处看到的,您不需要第二个 if 语句。

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
    }
}

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

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

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