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

时间:2014-04-24 22:04:47

标签: 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();
        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.");
        }
    }
}

4 个答案:

答案 0 :(得分:1)

为了满足这些约束,您可以使用多种不同的构造,但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");
        }
    }
}

答案 1 :(得分:0)

while循环在块中运行代码,直到满足条件。

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

答案 2 :(得分:0)

你应该看看while循环。

while(a+b+c!=30) {
    //Your code goes here     
    a = randomVariable.nextInt(10);
    b = randomVariable.nextInt(10);
}

答案 3 :(得分:0)

使用while(){}是一个选项,但在这种情况下,do / while更有意义,因为你总是希望从至少一次随机数的尝试开始。

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

} while(a + b != 15);  // since c = a + b

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

a = randomVariable.nextInt(10);
b = 15 - a;
// a + b == 15 so a + b + c == 30;

如果您想确保ab介于0和9之间,则两者都不能少于6(15 - 9),所以

a = randomVariable.nextInt(4) + 6;
b = 15 - a;
// a + b == 15;

由于c必须为15,因此不能为10。