2017-04-23 24 views
-2

當我運行程序時,第一步是添加一個數字和另一個等等,只要我輸入ml(我創建的變量)彈出一個錯誤,但它工作正常,當我只是使用數字。我如何讓我的變量可用於輸入。 (道歉,如果我不是做的意義,它很難解釋)使用變量 - Java Eclipse

package pizza; 

import java.util.Scanner; 

public class size { 

    public static void main(String args[]) { 
     double m, l;  
     m = 4; 
     l = 5; 

     Scanner pizzasize = new Scanner(System.in); 
     double fstep, sstep, tstep, ostep, lstep, tot; 
     m = 4; 
     l = 5; 
     System.out.println("Enter pizza size:"); 
     fstep = pizzasize.nextDouble(); 
     System.out.println("Enter pizza size:"); 
     sstep = pizzasize.nextDouble(); 
     System.out.println("Enter pizza size:"); 
     tstep = pizzasize.nextDouble(); 
     System.out.println("Enter pizza size:"); 
     ostep = pizzasize.nextDouble(); 
     System.out.println("Enter pizza size:"); 
     lstep = pizzasize.nextDouble(); 
     tot = fstep+sstep+tstep+ostep+lstep; 
     System.out.println(tot); 

     pizzasize.close(); 
    } 
} 
+3

_whenever我輸入'm'或'l'(我創建的變量)會彈出一個錯誤。當然,這是因爲掃描器期望輸入一個數字。 –

+0

工作正常!你的意思是插入字符串而不是數字-_- –

+0

當輸入'm'或'l'時,你實際上會期待什麼? –

回答

2

由於@Ousmane梅伊迪奧指出,nextDouble()是要採取一個數,而不是一個字符串,如「M」或「L」。如果您希望它接受一個字符串或一個雙精度型,您必須修改您的代碼以檢查輸入是否爲Scanner

m = 4; 
l = 5; 
System.out.println("Enter pizza size:"); 
if(pizzasize.hasNextDouble()){ 
    fstep = pizzasize.nextDouble(); 
}else{ 
    String input = pizzasize.next(); 
    if(input.equals("m")){ 
     fstep = m; 
    } 
    else if(input.equals("l")){ 
     fstep = l; 
    } 
} 
+0

我真的不太瞭解java。檢查掃描儀輸入是什麼意思? – mark

相關問題