2012-01-26 11 views
0

は、Bluejで短いJavaプログラムをコンパイルして実行してみると、出力なしでハングします。 in.next関数を使用する前にこの問題が発生しました。 簡単な質問と思われるものについては、何か助けと謝罪をしてくれてよろしいですか?Javaプログラムがハングする

import java.util.Scanner; 

public class net_salary{ 

public static void main(String[]args){ 

Scanner in = new Scanner(System.in); 



float income; 
float incometax; 
float afterincometax; 
float nationalinsurance; 
float afterni; 
float pension; 
float netincome; 

income = in.nextFloat(); 





if(income <9000) 
    { 
     incometax = 0; 
     afterincometax = income - incometax; 

    } 
    else if (income >=9000 && income <=21000) 
    { 
     incometax = (income * 0.15F); 
     afterincometax = income - incometax; 
    } 

    else if (income >=21000 && income<=31000) 
    { 
     incometax = income * 0.2F; 
     afterincometax = income - incometax; 

    } 

    else if (income >=31000 && income<=50000) 
    { 
     incometax = income * 0.225F; 
     afterincometax = income - incometax; 
    } 

    else 
    { 
     incometax = income * 0.25F; 
     afterincometax = income - incometax; 
    } 





    if(income < 16000) 

    { 
     nationalinsurance = 0; 
     afterni = income - nationalinsurance; 

    } 


    else if(income >= 16000 && income <= 31000) 
     { 

      nationalinsurance = income*0.05F; 
      afterni = income - nationalinsurance; 
     } 
    else if(income > 31000 && income <=40000) 
     { 

      nationalinsurance = income*0.09F; 
      afterni = income - nationalinsurance; 
     } 
    else 
     { 

      nationalinsurance = income*0.11F; 
      afterni = income - nationalinsurance; 
     } 





    pension = income *0.05F; 

    netincome = ((income - pension)-nationalinsurance)-incometax; 

    System.out.println("Your gross income is : £" + income) ; 
    System.out.println("Your income tax is : £" + incometax) ; 
    System.out.println("Your nationalinsurance £" + nationalinsurance) ; 
    System.out.println("Your pension is : £" + pension) ; 
    System.out.println("Your net income is : £" + netincome) ; 

} 

} 
+3

「不幸」を定義します。メッセージはありますか? –

+1

エラーメッセージは何ですか? –

+0

問題はなんですか? – stryba

答えて

1

私はあなたの問題が何であるか分かりません。私はそれを実行すると、それはうまく動作します。ユーザーの入力を待っていたことに気づくのにはもう時間がかかっていましたが、一度入力しただけで数字を入力してEnterキーを押すと機能しました。私があなたの場合は、ユーザーに次のようなプロンプトを追加します。

System.out.println("Please enter your income: "); 
income = in.nextFloat(); 
+0

助言に感謝すると、プロンプトがたくさん出てきました。 –

+0

@HertenFerford - 助けてくれてうれしい!あなたの質問に答えがあるなら、それはあなたがそれを助けた答えを受け入れるためにStackOverflowの良い習慣です。それが感謝の気持ちを示す最善の方法です。 :) – Steph

+0

乾杯Steph - そう今! –

1

それはfloat値を求めていると、入力1にあなたを待っています。 追加してみてください: System.out.println("Enter a value:"); だけincome = in.nextFloat(); 前にこの事実をより明らかにします。

次に、float値(5など)を入力し、Enterキーを押します。

+0

これは問題を解決しました。何らかの理由で端末の起動を拒否していて、入力時にエラーが発生しましたが、このコードを追加することで問題は解決しました。 –

+0

いつもBlueJに端末を表示する設定があると思います。この問題が再び発生しないようにするには、これを調べることができます(または、常にプロンプ​​トが表示されます)。 –

+1

問題が解決した場合は、投票して受諾してください。 –

1

stdinを読み込む前に何も入力しないので、数字とヒットリターンを入力すると実行されます。

+0

何かの理由でプログラムが端末を開くことを拒否していましたが、プロンプトを出すことは、この問題を迅速に解決するように思われました。よろしく。 –

+0

「端末を開くことを拒否」していませんでした。これはターミナルプログラムで、コマンドラインから実行する必要があります。 –

関連する問題