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

Java未正确使用Scanner类[重复]

能正青
2023-03-14

我是一个程序员新手,这似乎是一个很简单的问题,但我相当卡住,甚至在周围看了2个小时左右。我的代码贴在下面,唯一的问题是扫描器类没有要求输入。(决定用加仑对升还是用升对加仑)如果有人帮我解决这个问题,我会非常感激的

import java.util.Scanner;
public class GallonsToLiters {

public static void main(String[] args) {
    System.out.println("Do you want liters or gallons? Enter a 10 for gallons to liters, and anything else for liters to gallons.");

    Scanner test = new Scanner(System.in);


    if (test.equals (10)){
        double gallons, liters;
            Scanner console = new Scanner(System.in);

            System.out.println("Enter an amount of gallons --> ");
            gallons = console.nextDouble();
            liters = gallons * 3.785;
            // "%.2f" means that it rounds to 2 dec places. If you change #, that is how many decimal places it rounds to
            System.out.printf("Amount in liters " + "%.2f",liters);
    }
     else{
            double liters01, gallons01;
            Scanner console01 = new Scanner(System.in);

            System.out.println("Enter an amount of liters --> ");
           liters01 = console01.nextDouble();
            gallons01 = liters01 / 3.785;
            // "%.2f" means that it rounds to 2 dec places. If you change #, that is how many decimal places it rounds to
            System.out.printf("Amount in gallons (Rounded) " + "%.2f",gallons01);




            }

共有1个答案

司马钱明
2023-03-14

不需要声明扫描多个对象一次,不需要为每个条件结构声明不同的加仑和升变量

Scanner reader = new Scanner(System.in);
double gallons, liters;
int op;
System.out.println("Do you want liters or gallons? Enter a 10 for gallons to liters, and anything else for liters to gallons.");

 op = reader.nextInt();

if (op==10){

        System.out.println("Enter an amount of gallons --> ");
        gallons = reader.nextDouble();
        liters = gallons * 3.785;
        // "%.2f" means that it rounds to 2 dec places. If you change #, that is how many decimal places it rounds to
        System.out.printf("Amount in liters " + "%.2f",liters);
}
 else{


        System.out.println("Enter an amount of liters --> ");
        liters = reader.nextDouble();
        gallons = liters/3.785;
        // "%.2f" means that it rounds to 2 dec places. If you change #, that is how many decimal places it rounds to
        System.out.printf("Amount in gallons (Rounded) " + "%.2f",gallons);
        }
}
 类似资料:
  • 一直以来,我们都使用 System.out.println() 方法向屏幕打印内容,那么如何接收输入的内容呢?本小节所学习的 Scanner 类就可以实现对输入内容的接收。在本小节,我们将学习 Scanner 类的定义,如何使用 Scanner 类以及其常用方法,在学完这些基础知识后,我们会在最后学习一个比较有趣的实例程序。 1. 定义 Scanner 是一个简单的文本扫描器,可以解析基础数据类型

  • 本文向大家介绍Java Scanner 类的使用小结,包括了Java Scanner 类的使用小结的使用技巧和注意事项,需要的朋友参考一下 在笔试编程过程中,关于数据的读取如果迷迷糊糊,那后来的编程即使想法很对,实现很好,也是徒劳,于是在这里认真总结了Java Scanner 类的使用 通过 Scanner 类来获取用户的输入,下面是创建 Scanner 对象的基本语法:  接下来我们演示一个最简

  • 我正在做一些性能评估的Java阿格拉捷操作,以迭代集合。我正在评估和的性能。但是我发现的输出大多数时候都是错误的。例如,在下面的代码中,有80%以上的时间输出错误: 我的问题是:我是否以错误的方式使用了?是否有任何方法可以确保的正确性。谢谢

  • 问题内容: 我从过去的经验中了解到的是, 或将继续搜索,直到在同一行或下一行找到整数或双精度都没有关系,而通过扫描器类读取输入的字符串时,则会考虑空格和将光标保持在同一行,如果在in代码之前使用if 会考虑剩余的光标,有人可以帮助我更详细地了解这一点,尤其是关于它的开始位置和结束位置吗?另外,如果我认为任何错误是正确的,请告诉我。 问题答案: 您最初的理解是错误的。 我从过去的经验中了解到的是.n

  • 问题内容: 我正在尝试为我的程序创建一个简单的菜单来读取用户输入。这是代码: 这是我得到的例外测试: 我从while循环中删除了第二个命令= Scanner.next(),但是让我仅读取一次用户输入。怎么解决呢? 更新:AddWord方法: 问题答案: 您可以使用

  • 我正在使用Intellij IDEA。 这是我的代码: 问题是,当我运行它时,它会工作。但是,Intellij找不到Scanner类。这是红色的下划线。 如何解决这个问题?