Java 初学者!我需要找出为什么当我在 if else 语句中初始化时“discount”和“discountnum”一直说它们需要初始化。我不想像对待其他变量那样接受这两个变量的用户输入。我该如何解决这个问题,让它只发布数字?
import java.util.Scanner;
package com.company;
public class Coffee {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String name = scan.nextLine();
double prevpurchases = scan.nextDouble();
double saleamount = scan.nextDouble();
double discountnum;
double totalamount;
int discount;
double amountsaved;
System.out.println("Welcome to Starbucks.\n"+
"Please enter your name: " + name);
System.out.println("Please enter the current purchase amount: " + saleamount);
System.out.println("Please enter the number of purchases in the last month: " + prevpurchases);
if (saleamount < 5){
discountnum = 0;
amountsaved = 0.00;
} else {
if (prevpurchases == 0) {
discountnum = 0.05;
discount = 5;
}
else if (prevpurchases >= 1 && prevpurchases <= 5){
discountnum = 0.10;
discount = 10;
}
else if (prevpurchases >= 6 && prevpurchases <= 10){
discountnum = 0.15;
discount = 15;
}
else if (prevpurchases >= 11 && prevpurchases <= 15){
discountnum = 0.20;
discount = 20;
}
else if (prevpurchases >= 16 && prevpurchases <= 20){
discountnum = 0.25;
discount = 25;
}
else if (prevpurchases >= 21){
discountnum = 0.30;
discount = 30;
}
}
System.out.println("***********************\n" +
"Receipt for " + name);
System.out.println("You get a " + discount + "% discount.");
amountsaved = saleamount * discountnum;
totalamount = saleamount - amountsaved;
System.out.println("Total amount due: $ " + totalamount);
System.out.println("You saved $ " + amountsaved);
System.out.println("***********************\n");
}
}
输出示例:
欢迎来到星巴克。
请输入您的姓名:Brian B Bryan
请输入当前购买金额:12.78 美元
请输入上个月的购买次数:14
<小时/>布莱恩·B·布莱恩 (Brian B Bryan) 的收据
您可以获得 20% 的折扣。
应付款总额:10.22 美元
您节省了 2.56 美元
<小时/>最佳答案
你“可能”有一个案例,它不会通过你的任何 if-else-if。尝试使用此代码。
if (saleamount < 5){
discountnum = 0;
amountsaved = 0.00;
} else {
if (prevpurchases == 0) {
discountnum = 0.05;
discount = 5;
}
else if (prevpurchases >= 1 && prevpurchases <= 5){
discountnum = 0.10;
discount = 10;
}
else if (prevpurchases >= 6 && prevpurchases <= 10){
discountnum = 0.15;
discount = 15;
}
else if (prevpurchases >= 11 && prevpurchases <= 15){
discountnum = 0.20;
discount = 20;
}
else if (prevpurchases >= 16 && prevpurchases <= 20){
discountnum = 0.25;
discount = 25;
}
else if (prevpurchases >= 21){
discountnum = 0.30;
discount = 30;
} else {
//this is the missing/needed initialization
//if neither one of the tests you have above, you need to somehow initialize the variable.
}
}
关于java - 在 if else 中初始化变量但不起作用,如何正确初始化它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59995427/