逻辑 - Java 编程 do-while 循环
Logic - Java programming do-while loops
因此,当您在 Java 中编写代码并执行 do-while 循环时,当有多个条件打破循环时,您必须使用 && (和)而不是 || (要么)。我知道 && 会打破循环。
在这个例子中,输入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
因此代码不符合您的规范,因为您想在输入 2
、3
或 [=25= 时中断]
小规则:
如果您使用 ||
并且第一个测试是 true
,编译器甚至不会费心测试其余的测试,输出将是 true
。
与 &&
相同,第一个测试是 false
。
只要年份不等于“1”和“2”以及“3”和“4”,您在括号内的代码就会被执行。在其他情况下,只要年份值不是其中之一。但是如果您使用 ||
而不是 &&
,那么代码将一直执行。因为一个条件就够了 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')
是多个条件的正确语法,因为添加的"&&"让程序知道每个条件都依赖语句中的其他条件,如果有一个为假,则语句中断。 -- 而 "||" 用于 独立 语句。
例如,
String Apple = "Red";
if(Apple.equals("Red")||Apple.equals("Green")){
return true;
} else {
return false;
}
if 语句将 return 为真,即使 Apple 不是绿色的,它也会检查一个条件是否为真。
同时
String Apple = "Red";
if(Apple.equals("Red")&&Apple.equals("Green")){
return true;
} else {
return false;
}
无论如何这都会 return 错误,因为这两个条件相互依赖。
希望对您有所帮助!
while(year != '1' && year != '2' && year != '3' && year != '4');
您将在此处使用 &&
运算符,因为为了打破此处的循环 "year" 不得为 1 且不得为 2 且不得为 3 且不得是 4。
如果您要使用 OR 运算符 (||
),其中一个可能为假,另一个为真,但您的循环仍会继续。
基本上,为了打破循环,您需要 year==1、2、3 和 4 为假。如果使用 &&
,它们都必须为假。如果您使用 ||
,并非所有这些都必须为假才能中断循环。
因此,当您在 Java 中编写代码并执行 do-while 循环时,当有多个条件打破循环时,您必须使用 && (和)而不是 || (要么)。我知道 && 会打破循环。
在这个例子中,输入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
因此代码不符合您的规范,因为您想在输入 2
、3
或 [=25= 时中断]
小规则:
如果您使用 ||
并且第一个测试是 true
,编译器甚至不会费心测试其余的测试,输出将是 true
。
与 &&
相同,第一个测试是 false
。
只要年份不等于“1”和“2”以及“3”和“4”,您在括号内的代码就会被执行。在其他情况下,只要年份值不是其中之一。但是如果您使用 ||
而不是 &&
,那么代码将一直执行。因为一个条件就够了 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')
是多个条件的正确语法,因为添加的"&&"让程序知道每个条件都依赖语句中的其他条件,如果有一个为假,则语句中断。 -- 而 "||" 用于 独立 语句。
例如,
String Apple = "Red";
if(Apple.equals("Red")||Apple.equals("Green")){
return true;
} else {
return false;
}
if 语句将 return 为真,即使 Apple 不是绿色的,它也会检查一个条件是否为真。
同时
String Apple = "Red";
if(Apple.equals("Red")&&Apple.equals("Green")){
return true;
} else {
return false;
}
无论如何这都会 return 错误,因为这两个条件相互依赖。
希望对您有所帮助!
while(year != '1' && year != '2' && year != '3' && year != '4');
您将在此处使用 &&
运算符,因为为了打破此处的循环 "year" 不得为 1 且不得为 2 且不得为 3 且不得是 4。
如果您要使用 OR 运算符 (||
),其中一个可能为假,另一个为真,但您的循环仍会继续。
基本上,为了打破循环,您需要 year==1、2、3 和 4 为假。如果使用 &&
,它们都必须为假。如果您使用 ||
,并非所有这些都必须为假才能中断循环。