JAVA初学者简单上机练习-循环及判断-Scanner

上机练习-购物结算

本段代码对于初学者使用,cmd运行,用的Scanner

需求说明:
-循环输入商品编号和购买数量
-当输入n时结账
-结账时计算应付金额并找零

代码如下:

System.out.println("choose the thing");
System.out.println("1.T_shirt"+'\t'+"2.shose"+'\t'+"3.pingpang");
int money=0;
int allmoney=0;
int all=0;
Scanner sc = new Scanner(System.in);
String continu=“y”;
while(continu=="y"){
	 System.out.println("请输入商品编号");
	 int number = sc.nextInt();
	 System.out.println("请输入购买数量");
	 int many = sc.nextInt();
	 if(number == 1){
		money=10;
	}else if(number==2){
		money=20;
	}else{
		money=15;
	}
	allmoney=many*money;
	System.out.println("buy information:"+number+'\t'+"many"+many);
	System.out.println("合计:"+'\t'+allmoney);
	System.out.println("是否继续购买?");
	continu = sc.nextLine();
	all = all + allmoney;
}
System.out.println("应支付金额:"+'\t'+all);
System.out.println("请支付");
int coustom = sc.nextInt();
if(all>coustom){
	System.out.println("您输入的金额小于应付款:"(all-coustom));
}else{
	System.out.println("找零:"+(coustom-all));
}

注意:

Scanner
如果将nextInt()方法写在nextLine()方法之前,nextLine()会被直接跳过!因为nextInt()方法返回值的时候只清空回车符以前的东西,而回车符会继续保留在队列中继续向下执行,这时nextLine()读取队列会将回车符读取,因此,程序直接执行完毕没有让你再次输入。
解决方法:可以将nextLine()用next()替换;或者nextInt()用nextLine()替换,再进行类型转换。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值