将三个while循环减少为一个(Java)

时间:2017-02-08 18:02:36

标签: java while-loop

这段代码本身工作正常,但我需要将三个while循环减少为一个,而我似乎无法在语法上正确。

while (numY == numX) {
    System.out.print("The numbers are the same");
    break;
}
while (numY < numX) {
    int lesserY;
    lesserY = numY;
    int greaterX;
    greaterX = numX;
    System.out.printf("%d is the greater than %d", greaterX, lesserY);
    break;
}
while (numY > numX) {
    int greaterY;
    greaterY = numY;
    int lesserX;
    lesserX = numX;
    System.out.printf("%d is the greater than %d", greaterY, lesserX);
    break;
}

2 个答案:

答案 0 :(得分:3)

为什么你很简单不要随时使用,因为你只使用它一次并使用if(..)else这样:

public static void main(String[] args) {
    int numY = 5, numX = 6;
    if (numY == numX) {
        System.out.print("The numbers are the same");

    } else if (numY < numX) {
        int lesserY;
        lesserY = numY;
        int greaterX;
        greaterX = numX;
        System.out.printf("%d is the greater than %d", greaterX, lesserY);
    } else if (numY > numX) {
        int greaterY;
        greaterY = numY;
        int lesserX;
        lesserX = numX;
        System.out.printf("%d is the greater than %d", greaterY, lesserX);
    }
}

答案 1 :(得分:2)

我建议在大多数编程语言中更多地研究不同的控制结构。当你需要多次重复动作时,可以使用循环。在每种情况下,您都会立即从while循环中断。查看if / else if / else数据块,您会发现可以将程序缩减为ifelse if,{{1}构造。

您有三种可能的结果: 1 GT; else 2&gt; numY == numX 3&gt; numY < numX

这些分支选择可以这样表达:

numY > numX

对于您的特定条件而言,最好的一点是,如果您知道if (condition1) { // ... } else if (condition2) { // ... } else if (condition3) { // ... } numY == numX是假的,那么您就知道唯一的其他可能选择numY < numX是真的。

这意味着您只需使用numY > numX来表示“如果所有其他条件都为假,请执行此操作”。

else