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.");
}

}
}

解決方案:

表面上我的price 和 totalprice 都可以取得到值,但是,如果前面的幾條if判斷語句均為成功的話,說明price還是沒有賦值的!這樣就導致錯誤!!
理由相當於:
int price;
int totalprice=price*10;
而此時price並沒有原始初值!所以出錯!
判斷時,最好使用if else ,這樣能保證到price能取到初值!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM