java - true 算术正常工作, false 未显示正确的输出

标签 java if-statement

我被要求创建一个程序,要求购买眼镜的用户对任何附加配件提供是或否输入。虽然可能不是最干净的代码,但 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/

相关文章:

java - 安卓下载镜像

java - 将自然语言问题转换为 SQL 查询

java - Eclipse 编辑器 - 检测另一个文档上的选项卡开关

java - 按位运算符和 boolean 运算符之间的差异 'AND'

php - 我的 if 语句执行检查但不给出输出

if-statement - Go 是否优化了无法访问的 if 语句?

java.io.FileNotFoundException : read. txt (系统找不到指定的文件)`

if-statement - LISP 中的错误 - SYSTEM::%EXPAND-FORM:无效形式 (40)

c - 用c语言编程刽子手

java - 如何从 LinkedList pp = new LinkedList(); 中删除整数?