当前位置: 首页 > 知识库问答 >
问题:

需要从infile中获取每个整数并将其传递给一个方法

裴俊能
2023-03-14

我试图从infile中读取每个整数,并将其传递给方法adScore,该方法确定字母等级、所有等级的总数以及最高考试分数和最低考试分数。但是,在执行for循环时,我的while循环不会从infile中提取数据,因为我在执行for循环后调试它system.out.print.返回的只是数字0-29,这是我在循环中的计数器。可以帮助我判断我做错了什么,以便我可以从infile中提取等级分数吗?

问候。

        while(infile.hasNextInt())
        {
            for(int i=0; i <30; i++)//<-- it keeps looping and not pulling the integers from the     file.
            {
                System.out.println(""+i);//<--- I placed this here to test what it     is pulling in and it is just counting
                //the numbers 0-29 and printing them out.  How do I get each data    from the infile to store
                exam.adScore(i);//determines the count of A, B, C, D, F grades, total   count, min and max
            }
        }

共有2个答案

张永嘉
2023-03-14

Tron是对的-您实际上并没有要求扫描仪读取下一个整数。Scanner.hasNextInt()只是测试是否有要读取的整数。您只是告诉i遍历值0-29。我想你的意思是这样做:

while(infile.hasNextInt())
{
    int i = infile.nextInt();
    exam.adScore(i);//determines the count of A, B, C, D, F grades, total count, min and max
}

如果您不确定输入中的每一行都是整数,您可以这样做:

while(infile.hasNext()) { // see if there's data available
    if (infile.hasNextInt()) { // see if the next token is an int
        int i = infile.nextInt(); // if so, get the int
        exam.adScore(i);//determines the count of A, B, C, D, F grades, total count, min and max
    } else {
        infile.next(); // if not an int, read and ignore the next token
    }
}
拓拔稳
2023-03-14

它正在打印0-29,因为这就是你告诉它要做的:

System.out.println(""+i)

将打印出I,它只是你用作循环计数器的整数。实际上,您永远不会从Scanner对象中检索下一个值。我猜这是家庭作业,所以我不会给你任何代码,但我会说你肯定需要使用Scanner的nextInt()方法从输入文件中检索值,并在for循环中使用该值。

 类似资料:
  • 这里的进一步问题:promissione.all():在解决和/或拒绝所有承诺后返回一个结果 我正在使用Promissione.all迭代: 我有4种不同的环境。我正在搜索一个设备在所有这4个环境。有些返回404,有些返回200,有些返回属性connected=true,有些返回false。 基本上,我想在connected=true时触发一些函数,但如果connected对于环境为false,我

  • 嘿,我是一个JAVA新手,我正在做一个项目,在这一点上我被困住了,我想做的是...我已经做了一个JTree列出了其中的一些项,现在我想获得一个JTree的选定项的文本,将它存储在一个字符串对象中,并将它传递给另一个类,在那里我可以对它做进一步的操作...这是我试过的 当我运行程序时,在getVal()中返回一个空值,而不是JTree项的文本,请帮助。

  • 问题内容: 我有几个系统都需要将相同的属性加载到JVM。我可以使用-D标志一次加载一个属性,但是我正在寻找一种可以一次加载整个文件中所有属性的东西。例如: 我可以一次将–options-file = blah.properties添加到网络上的所有jvm中,然后仅更改属性文件,该文件可以是网络共享上的单个中央文件。 谢谢, 编辑:任何参数或命令也必须在Windows环境中工作。因此,任何针对uni

  • 我正在尝试反应表,对反应一般是很新的。现在,在下面的代码中,一个本地JSON(mock_data.JSON)被传递到常量数据中。我想用从URL获取的数据替换本地JSON。我怎么能那样做?谢谢:)

  • 问题内容: 我刚开始使用快速语言,并且知道这个问题是重复的。我发现了几个类似的问题和答案,但我无法弄清这个问题。 我想将ScandString变量的值从ScanViewController传递给ResultViewController。 ScanViewcontroller如下: ResultViewController如下: println(detectedString)没有给我任何结果。问题是

  • 在第4.9小节,我们已经知道,切片实际是一个指向潜在数组的指针。我们常常需要把切片作为一个参数传递给函数是因为:实际就是传递一个指向变量的指针,在函数内可以改变这个变量,而不是传递数据的拷贝。 因此应该这样做: func findBiggest( listOfNumbers []int ) int {} 而不是: func findBiggest( listOfNumbers *[]i