Java 为什么变量没有初始化?
如果您的销售数字低于5000,您的佣金将无法初始化,我认为您在编码时犯了一个错误,应该是这样的:Java 为什么变量没有初始化?,java,variables,Java,Variables,如果您的销售数字低于5000,您的佣金将无法初始化,我认为您在编码时犯了一个错误,应该是这样的: System.out.println("With a sales amount of $"+salesFigure+", $"+commission+" is the amount of commission earned."); import java.util.Scanner; 公开课委员会 { 公共静态void main(字符串[
System.out.println("With a sales amount of $"+salesFigure+", $"+commission+" is the amount of commission earned.");
import java.util.Scanner;
公开课委员会
{
公共静态void main(字符串[]args)
{
双销售额;
双重佣金;
扫描仪=新的扫描仪(System.in);
System.out.println(“输入总销售额:”);
salesFigure=scanner.nextDouble();
//这将解决问题>--><
如果(销售数字<5000)佣金=销售数字*.03;
如果(salesFigure>5000&&salesFigure 10000&&salesFigure 15000)佣金=salesFigure*.06;
System.out.println(“销售金额为$”+salesFigure+“,$”+commission+“是赚取的佣金金额”);
}
}
这应该可以解决问题。也有一些小的挑剔,但最好是在单独的行中声明变量,这样更容易阅读
为什么变量没有初始化
这是因为您在声明它时没有初始化它:
import java.util.Scanner;
public class Commission
{
public static void main(String[] args)
{
double salesFigure;
double commission;
Scanner scanner=new Scanner(System.in);
System.out.println("Enter the total sales amount:");
salesFigure =scanner.nextDouble();
// this should fix the problem > --> <
if(salesFigure < 5000) commission= salesFigure*.03;
if(salesFigure > 5000 && salesFigure <=1000) commission= salesFigure*.04;
if(salesFigure > 10000 && salesFigure<=15000) commission= salesFigure*.05;
if(salesFigure > 15000) commission= salesFigure*.06;
System.out.println("With a sales amount of $"+salesFigure+", $"+commission+" is the amount of commission earned.");
}
}
此外,当您尝试为佣金
赋值时,佣金
的所有可能赋值都需要通过给定的条件
double salesFigure, commission;
其次,检查你的情况。确保它们不是一些永远不可能为真的矛盾条件。一个简单的解决方案是按如下方式反转检查:
double commission = 0.0d;
这样,您就不需要初始化commission,因为它将始终收到一个值(我强烈建议在使用大量if/elseif语句时始终使用大括号{})
如果对百分比使用附加变量,则可以编写更清晰的代码:
if (salesFigure > 15000)
commission= salesFigure*.06;
else if (salesFigure > 10000)
commission= salesFigure*.05;
else if (salesFigure > 5000)
commission= salesFigure*.04;
else
commission= salesFigure*.03;
因为当
salesfraugh 5000&&salesfraugh感谢有意义时,它没有初始化。另外,我没有写这篇文章,我只是要纠正它,这是我唯一的错误,但我知道这永远不会是真的@Polygenomeplus,请不要使用double进行财务价值和计算,谢谢,我还是个新手,所以我甚至不知道BigDecimal是什么,但我会研究一下;e、 g.if(salesFigure>15000){…}else if(salesFigure>10000){…}else…
感谢您的帮助,但我仍然收到相同的错误:(这不会消除错误,因为对于编译器来说,变量可能仍然未初始化。您应该使用else
或从一开始就初始化变量。非常感谢,这样就解决了它。
double commission = 0.0d;
if (salesFigure > 15000)
commission= salesFigure*.06;
else if (salesFigure > 10000)
commission= salesFigure*.05;
else if (salesFigure > 5000)
commission= salesFigure*.04;
else
commission= salesFigure*.03;
double percentage;
if (salesFigure > 15000) {
percentage = 6;
} else if (salesFigure > 10000) {
percentage = 5;
} else if (salesFigure > 5000) {
percentage = 4;
} else {
percentage = 3;
}
commission = salesFigure * (percentage / 100.0);