gpt4 book ai didi

java - 如何简化大量的nextInt/nextDouble?

转载 作者:行者123 更新时间:2023-12-01 11:03:02 24 4
gpt4 key购买 nike

所以我正在创建一个程序,根据作业和测试成绩以及它们在该成绩中所占的百分比来确定最后学期的类(class)成绩。单个学生的成绩和百分比信息将在一行中给出。太好了,我只有一个问题:

        q1 = input.nextInt();
q1p = input.nextDouble();
q2 = input.nextInt();
q2p = input.nextDouble();
q3 = input.nextInt();
q3p = input.nextDouble();

l1 = input.nextInt();
l1p = input.nextDouble();
l2 = input.nextInt();
l2p = input.nextDouble();
l3 = input.nextInt();

有没有更好的方法来简化这种困惑的 int 和 double 输入?

最佳答案

从您的输入变量中可以看出,您似乎正在使用 Scanner API,对吗?如果是这样,那么您可以使用简单的外观来完成一些非常好的事情,并且条件来自扫描仪,以验证是否有要读取的输入。最后,为了检测输入是 double 还是 int,我们将进行一个简单的检查来确定!

Collection<Integer> integers= new ArrayList<>();
Collection<Double> doubles = new ArrayList<>();

while(input.hasNext())
{

if (input.hasNextInt()) {
integers.add(input.nextInt());
}else if(input.hasNextDouble()) {
doubles.add(input.nextDouble());
}else
input.next(); // will simply move to next value in the line
}

这样,您不仅不必像之前使用静态用户输入那样每次都检查 nextInt 或 NextDouble,而且您也不必担心。如果输入不是 double 或 int,那么列表将保持为空!

更新

更改集合列表的使用,以减少运行时的麻烦!目前该解决方案应该非常适合您。我还在 if 结构中添加了一个子句,以便在 hasNext == false 时使循环完成

关于java - 如何简化大量的nextInt/nextDouble?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33192827/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com