所以我是Java的完整菜鸟并尝试使用计算器。下面的代码是我到目前为止的代码。问题是代码有效,直到我添加标签“loops:”,添加标签后,Scanner因某种原因出错。我想要循环标签,以便用户可以选择(如果在代码底部的语句)是否继续使用计算器。任何帮助将不胜感激。
import java.util.Scanner;
public class MainClass {
public MainClass(){
loops:
Scanner input = new Scanner(System.in);
System.out.println("First Number: ");
int number1 = input.nextInt();
System.out.println("Second Number: ");
int number2 = input.nextInt();
System.out.println("Operator (+, -, /, *)");
String operation = input.next();
String cont = input.next();
int total;
if(operation.equals("+")){
total = number1 + number2;
System.out.println(total);
}
if(operation.equals("-")){
total = number1 - number2;
System.out.println(total);
}
if(operation.equals("*")){
total = number1 * number2;
System.out.println(total);
}
if(operation.equals("/")){
total = number1 / number2;
System.out.println(total);
}
System.out.println("Continue? Y/N: ");
if (cont.equalsIgnoreCase("n")){
break loops;
}
}
public static void main(String[] args) {
new MainClass();
}
}
答案 0 :(得分:0)
您需要使用循环。标签确实存在,你只是没有正确使用它们。标签基本上可以命名循环,以便您可以中断/继续特定的循环。
答案 1 :(得分:0)
请参阅下面的固定类(还有另一个问题 - 使用cont
),以下代码适用于我:
import java.util.Scanner;
public class MainClass {
public MainClass(){
Scanner input = new Scanner(System.in);
while(true){
System.out.println("First Number: ");
int number1 = input.nextInt();
System.out.println("Second Number: ");
int number2 = input.nextInt();
System.out.println("Operator (+, -, /, *)");
String operation = input.next();
int total;
if(operation.equals("+")){
total = number1 + number2;
System.out.println(total);
}
else if(operation.equals("-")){
total = number1 - number2;
System.out.println(total);
}
else if(operation.equals("*")){
total = number1 * number2;
System.out.println(total);
}
else if(operation.equals("/")){
total = number1 / number2;
System.out.println(total);
}
else{
System.out.println("Undefined input!");
}
System.out.println("Continue? Y/N: ");
String cont = input.next();
if (cont.equalsIgnoreCase("n")){
break;
}
}
}
public static void main(String[] args) {
new MainClass();
}
}
顺便说一句,我不喜欢在构造函数中做这些事情,也许这只是我的个人品味,但我宁愿在一个方法中定义它(静态或非静态 - 由你决定)并从{调用该方法{1}}。
答案 2 :(得分:0)
您的代码首先需要在每个切换案例中使用中断语句。其次,如果使用的话,标签不能应用于变量声明。这就解答了为什么您在使用Scanner时出错。我建议您使用do-while循环是一个入口控制循环,语法就像这样
do
{
//code you want to execute,will get executed at least once
}
while(boolean condition);
您可以将开关案例放在do部分中,并且用户是否想要继续将在while部分中作为布尔条件。试试吧!