Java While循环不会循环
整个代码都可以工作,但是while循环不会重复。cont=scan.next;他正在抓住绳子。输出如下所示:Java While循环不会循环,java,loops,while-loop,calculator,Java,Loops,While Loop,Calculator,整个代码都可以工作,但是while循环不会重复。cont=scan.next;他正在抓住绳子。输出如下所示: package pack; import java.util.Scanner; public class Calculator { public static void main(String args[]){ Scanner scan = new Scanner(System.in); String cont = "Yes";
package pack;
import java.util.Scanner;
public class Calculator {
public static void main(String args[]){
Scanner scan = new Scanner(System.in);
String cont = "Yes";
while(cont == "Yes" || cont == "yes" ){
System.out.print("Enter a Number: ");
int x = scan.nextInt();
System.out.print("Enter another Number: ");
int y = scan.nextInt();
int diff = x - y;
int sum = x + y;
int prod = x * y;
int quot = x / y;
System.out.println("The Sum is: " + sum);
System.out.println("The Diffrence is: " + diff);
System.out.println("The Product is: " + prod);
System.out.println("The quotient is: " + quot);
System.out.print("Enter Yes to Continue: ");
cont = scan.next();
System.out.println(cont);
}
}
}
然后程序会毫无问题地终止。我所需要的就是让while循环重复。谢谢你的帮助 将字符串与.equals而不是==
或者更好:
while(cont.equals("Yes") || cont.equals("yes") )
您需要以这种方式比较字符串:
while(cont.equalsIgnoreCase("Yes"))
这是因为在使用输入时,您将没有字符串文字,而是字符串对象。这些需要通过equals和not==进行比较。而不是cont==Yes | | cont==Yes您应该使用cont.equalsYes | | cont.equalsYes更改为此
while("Yes".equalsIgnoreCase(cont))...
改变
while(cont.equalsIgnoreCase("Yes"))
作为
理由
您需要知道==和等于背后的原因
equals方法存在于java.lang.Object类中,它应该检查对象状态的等价性!。也就是说,对象的内容。而==运算符则需要检查实际对象实例是否相同
if语句示例
考虑两个不同的参考变量str1和str2
如果你用等号
您将得到真实的输出
如果你使用==
现在您将得到FALSE作为输出,因为str1和str2都指向两个不同的对象,即使它们共享相同的字符串内容。这是因为每次创建新对象时都会出现新字符串。添加提示:使用。equalsIgnoreCase@ljgw好主意,我会添加它。在比较字符串时必须使用equals。非常好!谢谢你的帮助!
while(cont.equalsIgnoreCase("Yes"))
while(cont == "Yes" || cont == "yes" ){
while(cont.equalsIgnoreCase("Yes"))
str1 = new String("abc");
str2 = new String("abc");
System.out.println((str1.equals(str2))?"TRUE":"FALSE");
System.out.println((str1==str2)?"TRUE":"FALSE");