繁体   English   中英

逻辑-Java编程的do-while循环

[英]Logic - Java programming do-while loops

因此,当您使用Java进行编码并执行do-while循环时,如果有多个条件要破坏循环,则必须使用&&(and)而不是||。 (要么)。 我知道&&将打破循环。

在此示例中,输入1、2、3或4会中断循环,但是为什么&&!??! 我的教授无法解释。

import java.util.*;
public class ErrorTrap
{
    public static void main(String[] args)
    {
        System.out.println("Program by --");
        System.out.println();
        System.out.println("Error Traps");
        System.out.println();
        //initialize variables
        Scanner input = new Scanner(System.in);
        char year;

        //user input
            do {
                System.out.print("Please input a 1, 2, 3 or 4:  ");
                year = input.nextLine().charAt(0);

                //output
                System.out.println(num);
                System.out.println();
                }
                while(year != '1' && year != '2' && year != '3' && year != '4');          
    }//end main
}//end ErrorTrap

假设用户输入5

让我们检查结果:

5 != 1 is true
5 != 2 is true
5 != 3 is true
5 != 4 is true

true && true && true && truetrue因此循环不断循环。

例如,一旦用户输入3 ,我们将具有以下内容:

3 != 1 is true
3 != 2 is true
3 != 3 is false
3 != 4 is true

true && true && false && truefalse因此我们打破了循环。

现在假设您考虑使用|| 并放入3

3 != 1 is true
3 != 2 is true
3 != 3 is false
3 != 4 is true

true || anything true || anything给出了true ,是因为你想进入的时候折断代码不尊重你的规格234


小规矩:

如果您使用|| 并且第一个测试为true ,编译器甚至不打扰其余测试,输出为true

&&相同,第一个测试为false

只要年份不等于'1'和'2'和'3'和'4',只要在年份中不执行任何操作,您在do括号中的代码就会执行。 但是,如果您使用|| 而不是&& ,代码将一直执行。 因为一个条件足够year!='1',即使year ='2'也会执行代码。

&& is restricted, you should meet all conditions to validate code.
|| is not restricted, you just need to meet one condition of desired
   conditions to validate code.
while(year!='1' && year!='2')

是多个条件的正确语法,因为添加的“ &&”允许程序知道每个条件都依赖于语句中的其他条件,如果一个条件为false,则该语句将中断。 -而“ ||” 用于独立语句。

例如,

String Apple = "Red";

if(Apple.equals("Red")||Apple.equals("Green")){
    return true;
} else {
    return false;
}

即使苹果不是绿色的,if语句也将返回true,它会检查是否有一个条件为true。

String Apple = "Red";

if(Apple.equals("Red")&&Apple.equals("Green")){
return true;
} else {
return false;
}

无论如何,这都会返回false,因为这两个条件相互依赖。

希望这对您有所帮助!

while(year!='1'&& year!='2'&& year!='3'&& year!='4');

您将在此处使用&&运算符,因为要在此处中断循环,“ year”不能为1,并且不能为2,并且不能为3,也不能为4。

如果要使用OR运算符( || ),则其中一个可能为false,另一个可能为true,但是循环仍将继续。

基本上,为了打破循环,您需要year == 1,2,3和4为假。 如果使用&& ,则所有这些都必须为false。 如果使用|| ,并非所有循环都必须为假。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM