Java 不接受用户输入并在while循环中跳转到else子句
我是JAVA的初学者,我一直在尝试创建一个简单的计算器程序。我在while循环中遇到了一个问题,循环没有等待我的输入“ans”,而是直接跳到else子句Java 不接受用户输入并在while循环中跳转到else子句,java,Java,我是JAVA的初学者,我一直在尝试创建一个简单的计算器程序。我在while循环中遇到了一个问题,循环没有等待我的输入“ans”,而是直接跳到else子句 import java.util.Scanner; public class scanner_program { public static void main(String[] args) { Scanner ob = new Scanner(System.in); int
import java.util.Scanner;
public class scanner_program {
public static void main(String[] args)
{
Scanner ob = new Scanner(System.in);
int i = 1;
while (i==1)
{
System.out.print("Enter a number: ");
int num = ob.nextInt();
System.out.print("Enter another number: ");
int num2 = ob.nextInt();
System.out.println("Sum of "+num+" And "+num2+" is "+(num+num2));
System.out.println("Remainder of "+num+" And "+num2+" is "+(num-num2));
System.out.println("Product of "+num+" And "+num2+" is "+(num*num2));
float answer= (float) num/num2;
System.out.println("Quotient of "+num+" And "+num2+" is "+answer);
System.out.print("Try Again? (Y/N) ");
String ans = ob.nextLine();
if (ans=="Y" || ans=="y" ) {
// do nothing
}
else if (ans=="N" || ans=="n"){
break;
}
else {
System.out.println("Invalid input");
break;
}
}
}
}
ob.nextLine()
将换行符作为其下一个值,因此ans
被设置为无效字符
将ob.nextLine()
更改为ob.next()
另外,对于Java,您应该使用string.equals(“另一个字符串”)
,因此将字母检查改为:
if (ans.equals("Y") || ans.equals("y") ) {
// do nothing
}
else if (ans.equals("N") || ans.equals("n")){
break;
}
您应该输入ob.nextLine()以清除输入中可能输入的其他输入。您的代码是否有效您没有更新
i
value这是否回答了您的问题?另外,在用Java命名类时,您应该是CamelCase,这样ScannerProgramOr您就可以编写:if(ans.equalsIgnoreCase(“y”)
public static void main(String[] args){
Scanner ob = new Scanner(System.in);
while(true){
System.out.print("Enter a number: ");
int num = ob.nextInt();
System.out.print("Enter another number: ");
int num2 = ob.nextInt();
System.out.println("Sum of "+num+" And "+num2+" is "+(num+num2));
System.out.println("Remainder of "+num+" And "+num2+" is "+(num-num2));
System.out.println("Product of "+num+" And "+num2+" is "+(num*num2));
float answer= (float) num/num2;
System.out.println("Quotient of "+num+" And "+num2+" is "+answer);
System.out.print("Try Again? (Y/N)");
ob.nextLine();
String ans = ob.nextLine();
if (ans.equalsIgnoreCase("y")) {
// do nothing
} else if (ans.equalsIgnoreCase("n")){
break;
} else {
System.out.println("Invalid input");
break;
}
}
}