Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何运行循环直到方程变为真?_Java_Loops_If Statement - Fatal编程技术网

Java 如何运行循环直到方程变为真?

Java 如何运行循环直到方程变为真?,java,loops,if-statement,Java,Loops,If Statement,我有3个变量a,b和c。比如说,它们是从1到10的随机数。我想运行一个循环,直到随机数满足方程a+b+c=30,这样我就可以退出循环并运行更多的代码。 任何帮助都是非常感谢的,我刚刚开始学习JAVA,这只是我给自己的一个小项目 import java.util.Random; class ClassA{ public static void main(String args[]){ Random randomVariable = new Random();

我有3个变量a,b和c。比如说,它们是从1到10的随机数。我想运行一个循环,直到随机数满足方程a+b+c=30,这样我就可以退出循环并运行更多的代码。 任何帮助都是非常感谢的,我刚刚开始学习JAVA,这只是我给自己的一个小项目

import java.util.Random;

class ClassA{
    public static void main(String args[]){
        Random randomVariable = new Random();
        int a,b,c;

        a = randomVariable.nextInt(10);
        b = randomVariable.nextInt(10);

        c=a+b;

        if(c==10){
            System.out.println
            ("I want to run c=a+b until it becomes true so I can run this.");
        }
    }
}

while循环在块内运行代码,直到满足条件为止

while (a+b+c != 30) {
    // Regenerate numbers.
}

您可以使用多种不同的构造来满足这些约束,但是
while
循环可能是最容易理解的。下面是帮助您入门的示例代码:

import java.util.Random;

class ClassA {
    public static void main(String args[]){
        Random randomVariable = new Random();
        int a,b,c;

        //initially generate your random variables
        a = randomVariable.nextInt(10);
        b = randomVariable.nextInt(10);
        c = a + b;

        //check if the condition is met
        while(a + b + c != 30) {
           //if not, regenerate the numbers
           a = randomVariable.nextInt(10);
           b = randomVariable.nextInt(10);
           c = a + b;
        }

        if(c==10) {
            System.out.println("Whatever you want");
        }
    }
}

你应该研究while循环

while(a+b+c!=30) {
    //Your code goes here     
    a = randomVariable.nextInt(10);
    b = randomVariable.nextInt(10);
}
使用while(){}是一个选项,但在本例中,do/while更有意义,因为您总是希望至少尝试一次随机数

do {
   a = randomVariable.nextInt(10);
   b = randomVariable.nextInt(10);
   c = a + b;
} while(a + b + c != 30);

当然,循环本身是冗余的,因为您可以在没有循环的情况下确定需要什么

a = randomVariable.nextInt(10);
b = 15 - a;
// a + b == 15 so a + b + c == 30;
如果要确保
a
b
介于0和9之间,则两者都不能小于6(15-9)


由于
c
必须是15,所以不能是10。

请参阅。@user3561751我在回答中添加了一个带有注释的示例(使用while循环构造)。如果您需要任何其他信息,请告诉我。祝Java好运!
a = randomVariable.nextInt(10);
b = 15 - a;
// a + b == 15 so a + b + c == 30;
a = randomVariable.nextInt(4) + 6;
b = 15 - a;
// a + b == 15;