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