Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 关于为什么一个特定变量需要与其他变量不同的初始化方法的初学者问题_Java - Fatal编程技术网

Java 关于为什么一个特定变量需要与其他变量不同的初始化方法的初学者问题

Java 关于为什么一个特定变量需要与其他变量不同的初始化方法的初学者问题,java,Java,所以基本上,我得到的信息是,变量折扣价格可能尚未初始化,我知道要解决这个问题,我必须将其更改为double discountPrice=0,但我不知道“为什么”!有人能解释为什么我需要对折扣价格变量而不是其他变量这样做吗 class Revenue{ public static void main(String[]args){ Scanner console = new Scanner(System.in); double revenue, price, quantity

所以基本上,我得到的信息是,变量折扣价格可能尚未初始化,我知道要解决这个问题,我必须将其更改为double discountPrice=0,但我不知道“为什么”!有人能解释为什么我需要对折扣价格变量而不是其他变量这样做吗

class Revenue{
  public static void main(String[]args){

    Scanner console = new Scanner(System.in);

    double revenue, price, quantity, discountPrice;

    //Appearently should have double discountPrice = 0 'here'.

    System.out.print ("Enter product price ");
    price = console.nextDouble();

    System.out.print ("Enter quantity ");
    quantity = console.nextDouble();

    revenue = price * quantity;

    if (revenue > 5000){
      discountPrice = revenue * 0.10;
      revenue = revenue - discountPrice;
    }

    System.out.print("Discount Price is " + discountPrice);
    System.out.print("\nNet revenue is " + revenue);
  }
}

在您的程序中,您创建了4个变量:收入、价格、数量和折扣价格。如果你看一看,你会说“好的,价格是这个输入,数量是这个输入,收入是前两个输入的乘积”。无论发生什么情况,都会这样做。然而,在这之后是if语句,或者您可以称之为条件语句的语句。这意味着如果满足一个条件,就会发生一些事情——在这种情况下,如果收入>5000

由于该条件语句不能保证为真,而且我们可能永远也无法得到它,因此您的IDE通常会告诉您该变量(在本例中为discountPrice)可能尚未初始化

另一种说法是你在这里所做的:
双倍收入、价格、数量、折扣价格正在声明变量。如果没有将它们分配给任何对象,则它们尚未初始化。关于声明、初始化和分配,有一个很好且简洁的解释


我希望这能有所帮助:)

这是因为如果你的收入不高于5000,那么这个变量就没有价值了。其他变量已经这样做了。哦,所以我必须声明它为0,java不会自动为我这样做。不是局部变量,只是实例或类变量。这回答了你的问题吗?明白了,不断学习!!是的,基本上我必须手动为变量分配值(无论是实例变量还是类变量),我记下关键字,声明和赋值。我将带上两个非常重要的概念!