2012-01-26 3 views
0

сделал короткую программу java в Bluej после ее компиляции и пытается ее запустить, она висит без вывода. У меня была эта проблема до использования функции 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 и ждет вас, чтобы ввести один. Попробуйте добавить: System.out.println("Enter a value:"); перед income = in.nextFloat(); , чтобы сделать этот факт более явным.

Затем введите значение поплавка, например 5, и нажмите «Enter».

+0

Спасибо, что решила проблему - по какой-то причине она отказывалась воспитывать терминал, а при вводе его выдавала ошибку - однако добавление этого кода решило проблему. –

+0

Я думаю, что есть настройка, чтобы всегда показывать терминал в BlueJ. Вы можете посмотреть на это, чтобы эта проблема не повторилась (или всегда включайте подсказку!). –

+1

Если проблема решена, проголосуйте и примите это. –

1

Вы не запрашиваете ничего перед чтением stdin, так что просто введите число и нажмите return, и он запустится.

+0

Приветствую вас за советы, по какой-то причине программа отказывалась открывать терминал, но, как оказалось, быстрое включение в запрос подсказывало это быстро. Мое почтение. –

+0

Это не «отказ от открытия терминала». Это терминальная программа, вам нужно запустить ее из командной строки. –

Смежные вопросы