我正在为我的大学课程创建一个披萨订购应用程序,并正在编写代码。在编码方面相当苛刻,我遇到了Eclipse的问题,告诉我两个布尔变量没有被使用,当我知道它们是什么时。
我的变量有愚蠢的名字,但在编写程序时我很容易记住。由于某些原因,我的Topping和DoubleCheeseBoolean变量在代码中未被识别,即使我使用它们时也没有出现错误。
这是我目前拥有的全部内容,有人可以告诉我我需要做些什么来解决我的布尔问题。
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in); // Creates Scanner
// Variables
String DoubleCheeseString;
Boolean DoubleCheeseBoolean;
Boolean Topping;
int Topping1;
int Topping2;
int Attempts = 3;
double Cost = 00.00;
// Program
// Asks the user if they would like a double cheese pizza
System.out.println("Would you like double cheese for 50p more? (Answer with either 'yes' or 'no')");
DoubleCheeseString = keyboard.nextLine();
if (DoubleCheeseString == "yes") {
DoubleCheeseBoolean = true;
} else if (DoubleCheeseString == "no") {
DoubleCheeseBoolean = false;
} else {
}
// Asks the user if they would like a topping on their pizza
Attempts = 3;
while (Attempts > 0) {
System.out.println("Would you like to add a topping to your pizza?");
System.out.println("The first topping cost £1.00 and up to two more can be added for 50p each");
System.out.println("(Answer with 'yes' or 'no')");
if (keyboard.hasNext("yes")) {
Topping = true;
} else if (keyboard.hasNext("No")) {
Topping = false;
} else {
System.out.println("Please enter 'yes' or 'no'. Anything else is invalid.");
System.out.println("You have " + Attempts + " left before the program closes.");
if (Attempts == 0) {
System.exit(0);
}
答案 0 :(得分:3)
使用变量并为它们分配是非常不同的事情。
例如:在这里,我分配变量但不使用它。
int x = 3;
例如:在这里,我使用变量。
if (x == 3) { // do something }
在您的情况下,您根本不使用变量,而您所做的只是分配值。
解决方案:如果你真的想要摆脱警告,你可以将它们打印出来或其他东西,这将解决问题。请注意,可以忽略未使用的变量警告而不会出现问题。或者,您可以删除它们及其分配,因为它无论如何都没有被使用。
如果您以后真的要使用这些值,只需单独保留警告,并在开始使用时自行纠正。
为了将来参考,请使用.equals()
来比较您的字符串。使用==
比较字符串时,结果几乎总是错误的。
如果用户输入无效输入,您可能还需要在测试是/否输入时包含else块。记住:永远不要相信用户输入!
答案 1 :(得分:0)
我没有看到它们被用在任何地方......你正在为它们分配值,但从不读它们。 Eclipse会抱怨这个(就像你看到的那样)。
答案 2 :(得分:0)
您的代码中存在某些不会设置Topping
布尔值的分支条件。
以下是相关代码:
if (keyboard.hasNext("yes")) {
Topping = true;
} else if (keyboard.hasNext("No")) {
Topping = false;
} else {
因此,如果用户输入“是”或“否”以外的内容,则永远不会使用该变量。这段代码也一样:
if(DoubleCheeseString=="yes"){
DoubleCheeseBoolean=true;
}else if(DoubleCheeseString=="no"){
DoubleCheeseBoolean=false;
}else{
}
您只需使用False
初始化变量即可修复警告。