扫描仪提示用户输入数字

时间:2014-03-03 04:03:07

标签: java

以下是我要遵循的说明:

  

编写一个名为负和的方法,接受扫描仪读数   从包含一系列整数的文件输入,以及打印   消息到控制台指示是否从总和开始   第一个数字是负数。如果a,你应该返回true   可以达到负数,如果不是,则为假。例如,假设   文件包含38 4 19 -27 -15 -3 4 19 38您的方法   考虑正数(38)的总和,前两个数字(38 +   4)第一个三号(38 + 4 + 19)等等。没有   这些方法会产生以下结果   输出并返回false:没有负数。

     

如果该文件包含14 7 -10 9 -18 -10 17 42 98方法   发现在添加前六个后达到-8的负和   数字。它应该将以下内容输出到控制台并返回   true:经过6个步骤后总和为-8。

这是我到目前为止所拥有的。我只是在添加扫描仪以提示用户输入数字时遇到问题。

import java.io.*;
import java.util.*;

public class NegativeSum{
    public static void main (String [] args )
    throws FileNotFoundException{


        negativesum();


        }//end of amin

public static boolean negativesum()
throws FileNotFoundException{


     File file = new File ("negativeSum.txt");
    Scanner input =  new Scanner (file);

    int sum=0;
    int count = 0;

    while ( input.hasNextInt()){
        int next =input.nextInt();
        sum+=next;
        count++;

        if ( sum<0){
            System.out.println("sum of " + sum + " after " + count + "steps" );
            return true;
            }

        }///end of while
    System.out.println("no negative sum ");
    return false;




    }//end of metho d

}//end of main

2 个答案:

答案 0 :(得分:1)

我在您的实现中遇到的唯一严重错误(与您的问题陈述相比)是您的方法应该收到Scanner作为输入(例如接受扫描程序) -

public static boolean negativeSum(Scanner input) {
  if (input == null) {
    // Handle null - e.g. no value
    return false;
  }
  int sum = 0;
  int count = 0;

  while (input.hasNextInt()) {
    int next = input.nextInt();
    sum += next;
    count++;

    if (sum < 0) {
      System.out.println("sum of " + sum + " after "
          + count + " steps");
      return true;
    }
  }// /end of while
  System.out.println("no negative sum");
  return false;
}

答案 1 :(得分:0)

我的问题描述中没有看到任何要求您提示用户输入数字的内容。您的代码似乎已满足分配的规定要求。

如果你确实想这样做,那么:

我会把它作为练习留给你弄清楚如何把两者放在一起。 :)