为了账号安全,请及时绑定邮箱和手机立即绑定

Java:使用字符串来停止 while 循环,并由以下扫描仪输入消耗

Java:使用字符串来停止 while 循环,并由以下扫描仪输入消耗

慕的地6264312 2021-10-27 16:36:05
我正在学习以 Java 为语言的介绍性编程课程。我们正在处理的任务正在困扰着我。我有一个while循环要求输入数值,当输入字符串值时终止,即while (sc.hasNextDouble()){...}接下来是另一个扫描仪输入,它使用if (sc.hasNextLine())问题是我使用一个字符串来终止顶部的while循环,然后扫描仪立即使用它。我尝试对带有显式中断的顶部循环使用 if/else 语句;声明,但这不起作用。无论我做什么,它仍然在传递。我应该如何处理这个问题?任何指针表示赞赏。编辑:根据要求,这里是一些实际的代码。请记住,这是针对任意类分配的,因此可能没有多大意义。 //Request user input        System.out.print("Please enter multiple double values. Enter q or any non double value to quit.");        double doubleValue = 0.00; //declare doubleValue variable (for each entered double value)        double sum = 0.00; //declare starting sum value variable at 0.00        double doubleAverage = 0.00; //declare average of doubles variable        //declare largest double value variable as MIN_VALUE to ensure any entered value is larger        double largestDouble = Double.MIN_VALUE;        //declare smallest double value variable as MAX_VALUE to ensure any entered value is smaller        double smallestDouble = Double.MAX_VALUE; //declare smallest double value variable        int count = 0; //set starting count        while (sc.hasNextDouble())        {          doubleValue = sc.nextDouble();          //System.out.print("Please enter another double value. Enter -1 to stop entering values.");          sum = sum + doubleValue;          count++;          }        /*        * This section prompts the user for their first name and printd it in reverse.        */        System.out.print("Please enter your first name:");        String fName = ""; //declare fName variable before requesting input        if (sc.hasNext())        {          fName = sc.next();…在此之后,字符串值用于终止我最后用于 if 语句的 while 循环。
查看完整描述

3 回答

?
三国纷争

TA贡献1804条经验 获得超7个赞

我的讲师提供的另一个有效选项是使用虚拟变量来使用 Scanner 输入,例如:

String fName = sc.next(); // Consume the Q or q here.


查看完整回答
反对 回复 2021-10-27
?
慕娘9325324

TA贡献1783条经验 获得超4个赞

不从sc扫描仪传递数据的一种方法是创建一个新的扫描仪对象。让我们称之为一个scan。这样,当您引用scan它时,将不知道sc之前输入的扫描仪。

在您的if陈述中,您会提到scan扫描仪而不是sc扫描仪。

数据从while循环传递到您的if语句的原因是因为它们都引用了同一个对象,并且在您调用sc.hasNext()它时读取了您输入到控制台的最后一个内容。


查看完整回答
反对 回复 2021-10-27
  • 3 回答
  • 0 关注
  • 139 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信