即使我更改了布尔值" root",if语句也使用了应该找到数字的平方根而不是正常操作的事件(加法,减法等)
String piCheck = "pi";
String rootCheck = "square root";
Double n1 = null;
boolean root = false;
Scanner reader = new Scanner(System.in);
System.out.println("Welcome to Calculator!");
System.out.println(" ");
System.out.println("Enter a number, ");
System.out.println("or enter 'pi' to insert PI,");
System.out.println("or enter 'square root' to find the square root of a number.");
String input = reader.nextLine();
if (input.toLowerCase().contains(piCheck)) {
n1 = Math.PI;
root = false;
} else if (input.toLowerCase().contains(rootCheck)) {
root = true;
} else {
n1 = Double.parseDouble(input);
root=false;
}
if (root = true) {
System.out.println("Which number would you like to find the square root of?");
n1 = reader.nextDouble();
System.out.println("The square root of " + n1 + " is:");
System.out.println(Math.sqrt(n1));
} else if (root != true) {
Scanner reader2 = new Scanner(System.in);
System.out.println("Would you like to multiply, divide, add, subtract?");
String uOperation = reader2.nextLine();
答案 0 :(得分:1)
更改为
if (root)
{
--
}
else
{
--
}
=
用于分配值
答案 1 :(得分:0)
您使用过:
if (root = true)
这是一个赋值运算符,并且总是将root的值设置为true并继续。 你想用:
if (root == true)
但它仍然过于冗长。如果语句需要布尔表达式,则root本身是布尔值。因此可以使用更简单的方式存档相同的结果:
if (root)
答案 2 :(得分:0)
使用(root==true)
或(root),因为你的代码表示root = true它将root赋值为true而不是检查你的代码是否正在执行此根< - true
而不是检查(root,true)希望这些信息有帮助