gpt4 book ai didi

java - 使用 || 压缩基本代码带字符串的运算符

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:38:47 24 4
gpt4 key购买 nike

我是 Java 编程的新手。我无法找到有关使用 || 的任何信息带字符串的运算符。我想知道是否有更有效的方法来执行此代码,尤其是仍然易于阅读的代码。我尝试制作一个简单的计算器,以此来熟悉 IfThenElse 语句。

    import java.util.Scanner;
public class SimpleCalculator {
public static void main(String[] args){
Scanner input=new Scanner(System.in);
double first;
double second;
String option;

while(true){
System.out.println("What function would you like to calculate?");
option=input.next();
if(option.equals("add") || option.equals("+")){
System.out.println("First number");
first=input.nextDouble();
System.out.println("Second number");
second=input.nextDouble();
double add=first+second;
System.out.println(add);
}
else if(option.equals("subtract") || option.equals("-")) {
System.out.println("First number");
first=input.nextDouble();
System.out.println("Second number");
second=input.nextDouble();
double subtract=first-second;
System.out.println(subtract);
}
else if(option.equals("multiply") ||option.equals("*")) {
System.out.println("First number");
first=input.nextDouble();
System.out.println("Second number");
second=input.nextDouble();
double multiply=first*second;
System.out.println(multiply);
}
else if(option.equals("divide") || option.equals("/")) {
System.out.println("First number");
first=input.nextDouble();
System.out.println("Second number");
second=input.nextDouble();
double divide=first/second;
System.out.println(divide);
}
else if(option.equals("end")){
System.exit(0);
}
}
}
}

在大多数情况下,我想知道 if 要求,我已经测试过它们确实有效,但对我来说似乎有点笨拙。但是,我们将不胜感激任何批评。

最佳答案

Switch/case 语句是一系列 if 和 as of Java 7 的不错替代品您可以将 switch 语句与字符串一起使用。请注意两者之间的句法差异。每个案例都以 break 语句结束,而不是用大括号对事物进行分组。

switch (option) {
case "add":
case "+":
System.out.println("First number");
first=input.nextDouble();
System.out.println("Second number");
second=input.nextDouble();
double add=first+second;
System.out.println(add);

break;

case "subtract":
case "-":
System.out.println("First number");
first=input.nextDouble();
System.out.println("Second number");
second=input.nextDouble();
double subtract=first-second;
System.out.println(subtract);

break;

case "multiply":
case "*":
System.out.println("First number");
first=input.nextDouble();
System.out.println("Second number");
second=input.nextDouble();
double multiply=first*second;
System.out.println(multiply);

break;

case "divide":
case "/":
System.out.println("First number");
first=input.nextDouble();
System.out.println("Second number");
second=input.nextDouble();
double divide=first/second;
System.out.println(divide);

break;

case "end":
System.exit(0);
}

然后我会建议合并重复的提示代码。如果您发现自己在复制和粘贴代码,通常最好退后一步并弄清楚如何避免重复。重复代码表明您应该进行一些重构。

if (option.equals("end")) {
System.exit(0);
}

System.out.println("First number");
first=input.nextDouble();
System.out.println("Second number");
second=input.nextDouble();

switch (option) {
case "add":
case "+":
double add=first+second;
System.out.println(add);
break;

case "subtract":
case "-":
double subtract=first-second;
System.out.println(subtract);
break;

case "multiply":
case "*":
double multiply=first*second;
System.out.println(multiply);
break;

case "divide":
case "/":
double divide=first/second;
System.out.println(divide);
break;
}

此外,您还可以通过对所有计算使用单个 result 变量来消除重复的打印输出。

if (option.equals("end")) {
System.exit(0);
}

System.out.println("First number");
first=input.nextDouble();
System.out.println("Second number");
second=input.nextDouble();

double result;

switch (option) {
case "add": case "+": result = first + second; break;
case "subtract": case "-": result = first - second; break;
case "multiply": case "*": result = first * second; break;
case "divide": case "/": result = first / second; break;
}

System.out.println(result);

关于java - 使用 || 压缩基本代码带字符串的运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25924871/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com