Java 输入不起作用(初学者)

2023-12-08

由于某种原因,我的代码不接受最后一行的输入“您想订购什么:”

谁能告诉我我的错误是什么?它编译正确,一切顺利。我只是一个初学者,所以请告诉我基本术语。

import java.util.Scanner;
import java.util.*;

class RestaurantMain {
    public static void main(String[] args)
    {

        //Create an array list
        ArrayList menu = new ArrayList();

        //Variables//
        int choice;
        int customerChoice;
        boolean trueFalse;
        int restart = 0;
        String choice2;
        String addItems = "";
        int menuCount = 0;
        int indexCount = 0;
        String item = "";

        //Import input device
        Scanner in = new Scanner(System.in);

        ArrayList theMenu = new ArrayList();

        System.out.println("Welcome to the Cooper's restaurant system!");
        System.out.println("How can I help?");
        System.out.println("");
        System.out.println("1. Customer System");
        System.out.println("2. Management System");
        System.out.println("");
        System.out.println("");
        System.out.print("Which option do you choose: ");
        choice = in.nextInt();

            if (choice == 1) {
                System.out.println("Our menu's are as follows:");
                System.out.println("");
                System.out.println("1. Drinks");
                System.out.println("2. Starters");
                System.out.println("3. Mains");
                System.out.println("4. Desserts");
                System.out.println("");
                System.out.println("Please note - You MUST order 5 items.");
                System.out.println("");
                System.out.print("What menu would you like to follow? ");
                customerChoice = in.nextInt();

                    if (customerChoice == 1) {
                        System.out.println("Drinks Menu");
                            System.out.println("Would you like to order? ");
                            choice2 = in.nextLine();
                                if (choice2 == "yes") {
                                    System.out.println("Please enter the amount of items you want to order: ");
                                    while (indexCount <= menuCount);
                                        System.out.println("Please enter your item: ");
                                        item = in.nextLine(); {
                                        theMenu.add(item);
                                    }
                                    }

                    }
                    if (customerChoice == 2) {
                        System.out.println("Starters Menu");
                    }
                    if (customerChoice == 3) {
                        System.out.println("Mains menu");
                    }
                    if (customerChoice == 4) {
                        System.out.println("Desserts Menu");
                    }

你需要打电话in.nextLine()就在您拨打电话的线路之后in.nextInt()原因是仅询问下一个整数不会消耗输入中的整行,因此您需要通过调用向前跳到输入中的下一个换行符in.nextLine()

customerChoice = in.nextInt();
in.nextLine();

每次在调用不消耗整行的方法后需要获取新行时,几乎都必须执行此操作。考虑使用BufferedReader对象代替!

BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int integer = Integer.parseInt(reader.readLine());

这将引发相同的错误Scanner.nextInt()如果输入无法解析为整数,则执行此操作。

关于您对错误的评论,有一个:

while (indexCount <= menuCount);
System.out.println("Please enter your item: ");
item = in.nextLine(); {
 theMenu.add(item);
}

}

应该像下面这样:

while(indexCount <= menuCount){
    System.out.println("Please enter your item: ");
    item = in.nextLine();
    theMenu.add(item);
}

另外,这并不是绝对必要的,但我建议您在实例化列表时声明 ArrayList 的泛型类型,以便进一步调用 theMenu.get() 不需要转换为字符串。

ArrayList<String> theMenu = new ArrayList<String>();

比较字符串时,请确保使用str.equals("string to compare with")方法,而不是等于运算符 (==)。因此,例如,choice2 == "yes"应该是choice2.equals("yes"). Using equalsIgnoreCase代替equals将忽略大小写差异,这在这种情况下可能有用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 输入不起作用(初学者) 的相关文章

随机推荐

  • 如何在 CSS 和 HTML 中创建价格标签形状

    所以我找到了这个答案 CSS3菜单形状 样式但不知道如何将其放在左侧 我已经搜索过了 但没有运气 这就是我想要实现的目标 我也发现了这个 改变三角形的形状 我怎样才能让它在另一侧工作 我的意思是箭头需要位于左侧 是否可以用一个来做到这一点d
  • 在matlab中用渐变灰度颜色绘制圆

    我想在matlab中画一个带有渐变颜色的圆 但我不能 有谁可以帮助我吗 示例图片可以在这里找到 这是一种方法 N 200 this decides the size of image X Y meshgrid 1 1 N 1 1 1 N 1
  • r 过滤具有唯一字段的数据框[重复]

    这个问题在这里已经有答案了 我给出了编码和 R 的第一步 但我遇到了一个问题 我有一个具有以下格式的数据框 Months Person April Person1 May Person2 April Person1 June Person
  • 自定义属性编辑器不适用于 Spring MVC 中的请求参数?

    我正在尝试使用 Spring 注释创建一个多操作 Web 控制器 该控制器将负责添加和删除用户配置文件并为 jsp 页面准备参考数据 Controller public class ManageProfilesController Init
  • app-inventor:将应用程序安装到 SD 卡上

    编辑以显示提问后一周的当前状态 我深入研究了应用程序发明家 因为我的孩子 10 岁和 12 岁 即将获得他们的第一部 Android 手机 并且已经完成了一些拖放编程 游戏制作者 所以我认为这对他们来说可能是一个很好的切入点 我现在已经用应
  • Swift 中的可变参数

    我有一段非常简单的代码 它在 Swift 语言中使用可变参数 我不明白它为什么抱怨 Double 不是相当于 Double 吗 我知道我可以这样传递 printList 2 3 4 5 我猜 Variadic 和我想象的不一样 您可以传递多
  • Laravel 多重联合

    我在以 laravel 方式 添加具有多个联合的查询时遇到问题 我正在尝试完成一个与以下生成的查询等效的查询 ipsql for n 1 n lt total networks n ipsql SELECT FROM ip WHERE ne
  • 如何在实现 Condition/ConfigurationCondition 接口的类中使用 @Value 或 Environment

    我只使用 JavaConfig 我有以下声明 Bean public static PropertySourcesPlaceholderConfigurer propertyPlaceholderConfigurer return new
  • nginx x-accel-redirect 上“location”和“proxy_pass”的不同行为

    我的 nginx 配置如下 location mount points mount point1 internal alias repos mount point one location to proxy internal proxy p
  • Networkx 弹簧布局边缘权重

    我想知道如何spring layout考虑边缘权重 来自维基百科 另一种模型考虑每对节点 i j 的类似弹簧的力 其中每个弹簧的理想长度 delta ij 与节点 i 和 j 之间的图论距离成正比 而不使用单独的排斥力 最小化节点之间的欧几
  • 计算季度衰退和复苏

    给定这个数据框 GDP quarter 0 250 2015q1 1 260 2015q1 2 250 2015q3 3 240 2015q4 4 250 2016q1 5 260 2016q2 我怎样才能知道哪些季度是衰退 哪些季度是复苏
  • android中如何获取sd卡上的文件路径

    大家好 我的 SD 卡中有 mp3 文件 如何从sd卡获取mp3歌曲的文件路径 请帮助我 您可以从以下代码获取sdcard的路径 File extStore Environment getExternalStorageDirectory 然
  • 我可以压缩所有 python 标准库并且 python 仍然能够导入它吗?

    我读过一个教程 您可以将所有 libs 文件编译为 pyc 然后将所有 pyc 打包为压缩文件 然后蟒蛇仍然像魔法一样发挥作用 而且它变得明显变小了 但是当我将所有 pyc 文件压缩为 python36 zip 并将它们保存在 lib py
  • CSS 背景图像未加载

    我已经遵循了所有教程 它们都说了要说的话 我在 css 样式表中指定了主体内部的背景 但页面仅显示空白的白色背景 图像与 html 和 css 页面位于同一目录中 教程说的是 已被弃用 所以我在 css 中使用 body backgroun
  • 在html中链接jquery

    我无法成功将 jQuery 链接到我的 html 我已经编写了最简单的 jQuery 代码 这样我就知道它是正确的 并且我已经尝试了我能想到的一切 搜索并没有帮助 我的 html 文件名 test html
  • Python lxml:忽略 XML 声明(错误)

    我正在尝试解析文件浏览器 Thunar 的自定义操作文件 config Thunar uca xml 与lxmlPython 模块 由于某种原因 Thunar 显然写了一个malformed declaration进入这些文件 显然 ver
  • 从编译的发行版 exe 中删除类字符串名称

    我编译我的应用程序项目的发行版本 当我使用二进制编辑器查看编译后的最终 exe 时 我可以看到我自己创建的对象的所有类名称 例如 TPolygon TRectangle 等 作为 exe 内的二进制文本数据 我如何从 exe 中删除此信息
  • 安全下载文件

    我想要一个文件夹 我们称之为文档 其中包含登录用户可以下载的文档 这些包含非常敏感的信息 如何才能最好地保护该文件夹 我有 PHP 背景 所以想知道我是否忽略了任何事情 我将使用 htaccess 保护该文件夹 并且当用户单击下载时 他们永
  • 与一个进程进行多次通信而不破坏管道?

    这不是我第一次遇到这个问题 而且它确实困扰着我 每当我使用 Python 打开管道时subprocess模块 我只能communicate正如文档所指定的那样 使用它一次 Read data from stdout and stderr u
  • Java 输入不起作用(初学者)

    由于某种原因 我的代码不接受最后一行的输入 您想订购什么 谁能告诉我我的错误是什么 它编译正确 一切顺利 我只是一个初学者 所以请告诉我基本术语 import java util Scanner import java util class