2015-06-19 122 views
0

我已經修復了它,但是在輸入我的第一個數字後它仍然顯示爲0。它顯示我對vikt正確,但不是pris。 :S本地變量可能未被初始化錯誤

package Brev; 

import static javax.swing.JOptionPane.*; 

public class Uppgift1 { 

    public static void main(String[] arg) { 

     String indata = showInputDialog("Hur mycket väger ditt brev i gram?"); 

     int vikt = Integer.parseInt(indata); 
     int pris = 0; 

     do { 

      indata = showInputDialog("Ditt porto kostar " + pris + " kr med vikten " + vikt + " Gram." + 
        "\nSkriv in en följande vikt för att addera på ditt nuvarande porto."); 

      vikt = vikt + Integer.parseInt(indata); 



      pris = pris + pris; 




     if (vikt < 1) { 

      showMessageDialog(null, "Error"); 
     } 

     else if (vikt <= 50){ 


      showMessageDialog(null, "Portot blir "+ (pris + 7) + "Kr. med " + vikt + " Gram."); 
     } 

     else if (vikt <= 100){ 


      showMessageDialog(null, "Portot blir "+ (pris + 14) + "Kr. med " + vikt + " Gram."); 
     } 

     else if (vikt <= 250){ 


      showMessageDialog(null, "Portot blir "+ (pris + 28) + "Kr. med " + vikt + " Gram."); 
     } 

     else if (vikt <= 500){ 


      showMessageDialog(null, "Portot blir "+ (pris + 42) + "Kr. med " + vikt + " Gram."); 
     } 

     else if (vikt <= 1000){ 


      showMessageDialog(null, "Portot blir "+ (pris + 56) + "Kr. med " + vikt + " Gram."); 
     } 

     else if (vikt <= 2000){ 


      showMessageDialog(null, "Portot blir "+ (pris + 70) + "Kr. med " + vikt + " Gram."); 
     } 

     else if (vikt > 2000) 

      showMessageDialog(null, "Maximalvikten är 2000GRAM/2KG"); 




     } while (vikt <= 2000); 





    } 
} 
+0

你想要'pris'有什麼價值?你從來沒有設置一個值... – hexafraction

+0

在循環之前設置'pris = 0'並開始將它與任何你想要的值相加。如果你不這樣做'pris + pris'總會給你零。 – Armaiti

+0

我希望pris的值爲0 hexafraction。 Aramiti你認爲這是我想要的。但如果我寫「int pris = 0;」同樣的事情發生。 –

回答

0

你編寫代碼,看起來模棱兩可:

"aString" + anInt + anotherInt + "anotherString" 

的Java在解釋這個意思相當於:

("aString" + anInt) + anotherInt + "anotherString" 

使每個int轉換爲String之前被添加,但你想做的相當於:

"aString" + (anInt + anotherInt) + "anotherString" 

所以,只需以最後的,明確的方式寫下來。如果它們是字符串添加的一部分,請將括號放在數學公式中。

+0

我已經修好了,但是在第一個數字輸入和「vikt」是正確的之後,它仍然顯示「0」在「pris」。 –

+0

@ AihamAl-salehy問另一個問題,然後 – Basilevs

+0

@ AihamAl-salehy 0 + 0 = 0.這甚至不是一個編程問題。 –

相關問題