我被要求创建一个程序,要求购买眼镜的用户对任何附加配件提供是或否输入。虽然可能不是最干净的代码,但 true 语句可以正常工作,但我的“false”或 else 语句显示错误的输出。我尝试过嵌套的 ifs, else 语句,但没有指定错误的 boolean 值。我猜我的问题在于我声明和初始化整数的方式。在这个过程中的某个地方,这些值没有被正确存储(如果有的话)。如果这看起来是一个非常基本的问题,请原谅我,自从我不得不编码以来已经很长时间了,而且它是 Visual Basic 的,Java 对我来说非常陌生。我应该补充一点,我不是在寻找解决方案,只是寻求指导。提前谢谢您,我通常会在办公时间走进来,但目前我的部署资源几乎为零。
我们还处于类(class)的早期阶段,我已经考虑了我们的教授可能希望看到我们使用 do 或 while 语句的选项。不幸的是,任何指导都相当抽象(我知道这可能是为了开发自由而故意这样做的)。
import java.util.Scanner; //for Scanner
class Main {
public static void main(String[] args) {
System.out.println("Basic glasses = $25");
System.out.println("Premium?");
Scanner myScanner = new Scanner(System.in);
String myInput = myScanner.next();
boolean isTrue = (myInput.equals("y"));
boolean isFalse = (myInput.equals("n"));
//declare int
int subTotal = 0;
double total = 0;
int tint = 10;
int polar = 20;
int base = 25;
int premium = 50;
double half = .50;
//premium price
if (isTrue) {
subTotal = base + premium;
System.out.println("$" + subTotal);
}
else if (isFalse) {
subTotal = subTotal + base;
System.out.println("$" + subTotal);
}
System.out.println("tint?");
myScanner.next();
//tint price
if(isTrue) {
subTotal = subTotal + tint;
System.out.println("$" + subTotal);
}
else if (isFalse) {
System.out.println("$" + subTotal);
}
System.out.println("polar?");
myScanner.next();
//polarization price
if (isTrue) {
subTotal = subTotal + polar;
System.out.println("$" + subTotal);
}
else if (isFalse) {
System.out.println("$" + subTotal);
}
System.out.println("Second pair?");
myScanner.next();
//Second pair
if (isTrue) {
total = subTotal + (subTotal * half);
System.out.println("$" + total);
}
else {
total = subTotal;
System.out.println("$" + total);
}
myScanner.close();
}
}
最佳答案
所以 boolean 值就是您所想的,但您需要更新它们以反射(reflect)用户的下一个响应。因此,在出现提示(色调及其他)后,您只需输入 myScanner.next()
,您需要说:
myInput = myScanner.next();
isTrue = (myInput.equals("y"));
isFalse = (myInput.equals("n"));
关于java - true 算术正常工作, false 未显示正确的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57047025/