java未初始化变量_Java 代码中的可能未初始化变量问题

出现的错误:

import java.util.Scanner;

public class tickets {

public static void main(String[] args) {

Scanner stdin=new Scanner(System.in);

System.out.println("Please enter the for family or not ( Y or N ): ");

String family=stdin.nextLine();

String readEnter=stdin.nextLine();

System.out.println("Please enter the number of persons:");

double number=stdin.nextDouble();

stdin.close();

String Y="Y",N="N";

double price,totalprice;

if (family.equals(Y)){

if (number>=1 && number<=2){

price=6.50;

}

if (number>2 && number<7 ){

price=5.50;

}

if (number>6 && number<10){

price=4.5;

}

if (number>=10){

price=4.00;

}

totalprice=price*number;

System.out.println("Tickets for "+number+" family cost "+totalprice+" euros.");

}

if (family.equals(N)){

if (number>=1 && number<=2){

price=6.50;

}

if (number>2 && number<10 ){

price=6.00;

}

if (number>=10){

price=4.0;

}

totalprice=price*number;

System.out.println("Tickets for "+number+" family cost "+totalprice+" euros.");

}

}

}

192c2e1c066ed6fc8f0d9cd93cb4926d.png

解决方案:

表面上我的price 和 totalprice 都可以取得到值,但是,如果前面的几条if判断语句均为成功的话,说明price还是没有赋值的!这样就导致错误!!

理由相当于:

int price;

int totalprice=price*10;

而此时price并没有原始初值!所以出错!

判断时,最好使用if else ,这样能保证到price能取到初值!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值