2013-02-14 64 views
0

嘿,我正在做一个数字平均程序,我想插入这个函数,允许用户输入字母“y”再次运行并做另一个计算,但是,我的程序显示终止的消息(我'第一次计算之后,即使我希望用户能够输入输入,也可以使用Eclipse)。 这里是困扰我的源代码的一部分:我的程序不应该终止。为什么?

public static void main(String[] args) 
{ 
    Scanner input= new Scanner(System.in); 

    System.out.print("This is an averaging program. How many numbers would you like to average together?"); 
    int total=input.nextInt(); 
    int i; 
    float sum=0; 
    for(i=0; i<total; i++) 
    { 
     System.out.print("Enter your numbers: "); 
     sum += input.nextFloat(); 
    } 
    String y; 

    System.out.print("Your average is: " + sum/total + "\n"); 
    System.out.print("Would you like to do another computation? Type y for yes, or something else for no."); 
    y=input.nextLine(); 
+0

好吧,如果这是程序的结束,那么没有任何事情可以让你在回答提示后重新开始。 – 2013-02-14 02:48:28

+0

这不是程序的结尾,它是其中的一部分。我写它使得main()表示如果用户输入“y”,则另一个相同的函数开始运行,并且如果用户想要输入另一个计算,那么该函数会自行调用它。 – 2013-02-14 02:54:58

+0

啊,所以有两件事:1)这种重复是可怕的。不要这样做。 2)[user000001的答案](http://stackoverflow.com/a/14866999/839646)可能是你在找什么。 – 2013-02-14 02:56:38

回答

3

试试这个:

变化

sum += input.nextFloat(); 

sum += input.nextFloat(); 
input.nextLine(); 

而且

int total=input.nextInt(); 

int total=input.nextInt(); 
input.nextLine(); 

解释。你应该阅读手动换行符\n阅读数形式Scanner

当然,你应该在dowhile循环,以重复执行也加入该计划的相关部分后,但你可能知道。

+0

如果用户回答“y”,这将如何帮助再次运行程序? – 2013-02-14 02:49:53

+0

它不会但它确实解决了程序提前结束而不是等待输入的问题。 – Sinkingpoint 2013-02-14 02:51:06

+0

@RyanStewart更新回答问题 – user000001 2013-02-14 02:51:46

相关问题