Java输入不工作(初学者)

Java输入不工作(初学者),java,input,system,choice,Java,Input,System,Choice,由于某些原因,我的代码不接受最后一行“您想订购什么:” 谁能告诉我我的错误是什么?它正在正确编译,而且一切正常。我只是一个初学者,所以请用基本的术语告诉我 import java.util.Scanner; import java.util.*; class RestaurantMain { public static void main(String[] args) { //Create an array list ArrayList men

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

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

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");
                    }
import java.util.Scanner;
导入java.util.*;
班级餐厅经理{
公共静态void main(字符串[]args)
{
//创建一个数组列表
ArrayList菜单=新建ArrayList();
//变数//
智力选择;
国际客户选择;
布尔真假;
int重新启动=0;
弦乐选择2;
字符串addItems=“”;
int menuCount=0;
int indexCount=0;
字符串项=”;
//输入设备
扫描仪输入=新扫描仪(系统输入);
ArrayList菜单=新建ArrayList();
System.out.println(“欢迎来到库珀餐厅系统!”);
System.out.println(“我能帮什么忙?”);
System.out.println(“”);
System.out.println(“1.客户系统”);
System.out.println(“2.管理系统”);
System.out.println(“”);
System.out.println(“”);
System.out.print(“您选择哪个选项:”);
choice=in.nextInt();
如果(选项==1){
System.out.println(“我们的菜单如下:”);
System.out.println(“”);
系统输出打印(“1.饮料”);
System.out.println(“2.启动器”);
系统输出打印(“3.电源”);
系统输出打印(“4.甜点”);
System.out.println(“”);
System.out.println(“请注意-您必须订购5件商品”);
System.out.println(“”);
System.out.print(“您希望遵循什么菜单?”);
customerChoice=in.nextInt();
如果(客户选择==1){
System.out.println(“饮料菜单”);
System.out.println(“您想点菜吗?”);
choice2=in.nextLine();
如果(选项2=“是”){
System.out.println(“请输入您要订购的商品数量:”;

while(indexCount您需要在.nextLine()中调用
in.nextLine()
的行后面调用
in.nextLine()
原因是,仅请求下一个整数不会占用输入中的整行,因此需要通过调用.nextLine()中的
in.nextLine()

每次调用一个不消耗整行的方法时,每次都需要做一个新的代码。请考虑使用<代码> BufferedReader < /Cord>对象,而不是

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您的代码缺少三个大括号。
Arraylist必须这样声明

 ArrayList<class> list = new ArrayList<class>();
ArrayList list=new ArrayList();
如果需要整数的数组列表

ArrayList<Integers> in = new ArrayList<Integers>();
ArrayList in=new ArrayList();
代替in.nextLine();函数,您只需尝试另一个扫描函数,如“in.next()”。只需使用已经为JVM本身提供的方法进行研发即可。
您只需使用正确的逻辑,并使用equal()或equalingorecase()方法而不是“=”运算符。

我不确定这是否是唯一的问题,但您尝试使用==来比较字符串。请使用.equals()。更重要的是,使用
“yes.”equals(选择2)
而不是
选择2.equals(“是”)
。这是一个很好的实践,它可以让您避免出现wild
NullPointerException
:)谢谢大家!希望你们都过得愉快!数组列表可以在不使用泛型声明的情况下声明,数组列表的类型默认为Object,在本例中,当海报添加字符串时,这是可以的。但是他正在为一个对象分配一个基元数据类型。这不是一个错误吗?@adi71094,不,这不是一个错误。看看:我也可以作为一个对象吗k、 你在我的代码中看到我可以改进的初学者错误了吗?非常感谢!祝你愉快!有一个错误,请参阅我编辑的答案以获取信息!@CoopersIncI非常感谢你@SamTebbs33!非常感谢你提供的信息,这将有助于我的期末考试+管理系统:)当需要的时候,通读这篇文章会有很大帮助。有什么方法可以报答你的恩惠吗?
ArrayList<String> theMenu = new ArrayList<String>();
 ArrayList<class> list = new ArrayList<class>();
ArrayList<Integers> in = new ArrayList<Integers>();