java与eclipse不匹配_【JAVA小白】 用eclipse输入格式不匹配的问题

问题如下:

import java.util.Scanner;

import com.sun.org.apache.xerces.internal.util.SynchronizedSymbolTable;

public class Restaurant_system {

public static void main(String[] args) {

/**吃货联盟订餐系统

*/

/*数据存放体系,以及需要用到的功能 */

String[]name = new String[4]; //保存订餐人姓名

String[]dishMegs = new String[4];//保存所选信息,包括菜品名以及份数

int[]times = new int[4];//保存送餐时间

String[]addresses = new String[4];//保存送餐地址

int[]states = new int[4];//保存订单状态:0表示已经预定,1表示已经完成

double[]sumPrices1 = new double[4];//保存订单菜品金额

final double SEND_PRICES = 5.;

double[]sumPrices = new double[4];//保存订单的总金额

//boolean end = false; 本来是拿来结束整个do-while循环的,现在作废

String button;

Scanner input = new Scanner(System.in);

int choose;

do {

int check = 0;//检查

int check_ok = 0;//检查到餐袋内订单的数量

//程序初始化,打印菜单体系

System.out.println("欢迎使用“吃货联盟订餐系统”");

System.out.println("********************************************");

System.out.println("1、我要订餐");

System.out.println("2、查看餐袋");

System.out.println("3、签收订单");

System.out.println("4、删除订单");

System.out.println("5、我要点赞");

System.out.println("6、退出系统");

System.out.println("********************************************");

System.out.print("\n请选择:");

choose = input.nextInt(); //输入菜单选项

switch (choose) {

case 1:

System.out.println("***我要订餐***");

//先检查一下餐袋时候已经满了,如果已经满了,则无法点餐

for(;check < name.length;check++){//循环检查餐袋,看看有没有订单

if (name[check] !=null){//如果不是空

check_ok += 1;//订单数量加1

}else{//如果检查到订单数量为空,则进入点餐

break;

}

}

if (check_ok == 4) {//餐袋数量已满,终止点单

System.out.println("餐袋已满,无法点单。");

//返回菜单界面

}else{//餐单数量未满,进入点单

System.out.print("请输入订餐人姓名:");

name[check_ok] = input.next();//把名字放入姓名数组

System.out.println("序号\t菜名\t单价\t点赞数");

System.out.println("1\t红烧带鱼\t38.0\t0");

System.out.println("2\t鱼香肉丝\t20.0\t0");

System.out.println("3\t时令鲜蔬\t10.0\t0");

}

System.out.print("请选择您要点的菜品编号:");

int number = input.nextInt();

System.out.print("请输入您需要的份数:");

int copies = input.nextInt();

switch (number) {

case 1:

dishMegs[check_ok] = "红烧带鱼" +copies + "份";

sumPrices1[check_ok] = 38 * copies;

break;

case 2:

dishMegs[check_ok] = "鱼香肉丝" +copies + "份";

sumPrices1[check_ok] = 20 * copies;

break;

case 3:

dishMegs[check_ok] = "时令鲜蔬" +copies + "份";

sumPrices1[check_ok] = 10 * copies;

break;

default:

System.out.println("请输入1-3的数字");

break;

}

if (sumPrices1[check_ok] < 50) {

sumPrices[check_ok] = sumPrices1[check_ok] + SEND_PRICES;

}

System.out.println("请输入送餐时间(送餐时间是10点至20点之间的整点):");

boolean time_check_ok = true; //设置一个循环指令,如果输入的时间合理,则停止循环,否则就继续输入

do {

int time_check = input.nextInt();

if (time_check <= 20 && time_check>= 10) {

times[check_ok] = time_check;

time_check_ok = false;

}else {

System.out.println("请重新输入正确的送餐时间:");

}

} while(time_check_ok);

System.out.println("请输入送餐地址:");

addresses[check_ok] = input.next();

System.out.println("订餐成功!");

System.out.println("您订的是:" + dishMegs[check_ok]);

System.out.println("送餐时间:" + times[check_ok]);

System.out.println("送餐地址:" + addresses[check_ok]);

System.out.println("餐费:" + sumPrices1[check_ok] + "元,送餐费:" + SEND_PRICES + ",总计:" + sumPrices[check_ok] + "元。");

break;

case 2:

System.out.println("***查看餐袋***");

System.out.println("序号\t订餐人\t餐品信息\t送餐时间\t送餐地址\t总金额\t订单状态");

for(;check < name.length;check++){//循环检查餐袋,看看有没有订单

if (name[check] !=null){//如果不是空

check_ok += 1;//订单数量加1

}else{//如果检查到订单数量为空,则计数完毕

break;

}

}

for (int serialNumber = 0; serialNumber < check_ok; serialNumber++) {

System.out.println((serialNumber+1) + "\t" + name[serialNumber] + "\t" + dishMegs[serialNumber] + "\t" +

times[serialNumber] + "\t" + addresses[serialNumber] + "\t" + sumPrices[serialNumber] + "\t" + states[serialNumber]);

}

break;

case 3:

System.out.println("签收");

break;

case 4:

System.out.println("删除");

break;

case 5:

System.out.println("点赞");

break;

case 6:

System.out.println("退出");

break;

default:

System.out.println("请输入1-6当中的数字");

break;

}

//System.out.print("输入y返回:");

//button = input.next();//这里有问题 还没有解决

} while (true );

//button.equals("y")

}

}

这个代码内容不是重点

重点是每次让我输入的时候

比如nextInt()

我输入一个1

经常给我报错:

175abf59c73a23adca6bc8a53918eaf0.png

网上查了一下,说是输入的类型和接收的类型不匹配,所以导致错误。

也就是说,很可能我输入的1,是系统以为我输入的是一个字符串的1 然后就崩掉了

老遇到这个问题,想问下各位大神到底是怎么解决这个问题的?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值