[英]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 && true
为true
因此循环不断循环。
例如,一旦用户输入3
,我们将具有以下内容:
3 != 1 is true
3 != 2 is true
3 != 3 is false
3 != 4 is true
true && true && false && true
是false
因此我们打破了循环。
现在假设您考虑使用||
并放入3
:
3 != 1 is true
3 != 2 is true
3 != 3 is false
3 != 4 is true
true || anything
true || anything
给出了true
,是因为你想进入的时候折断代码不尊重你的规格2
, 3
或4
小规矩:
如果您使用||
并且第一个测试为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.