Java购物结算,卡在不懂do...while跳出循环和最后的总金额。求解决,谢谢
答案:4 悬赏:50
解决时间 2021-03-07 12:00
- 提问者网友:绫月
- 2021-03-06 17:59
Java购物结算,卡在不懂do...while跳出循环和最后的总金额。求解决,谢谢
最佳答案
- 二级知识专家网友:青灯有味
- 2021-03-06 18:28
public static void main(String args[]) {
System.out.println("********************");
System.out.println("");
System.out.println("请选择购买的商品编号:");
System.out.println("1.T恤(¥245.0)网球鞋(¥570.0)网球拍(¥500.0)");
System.out.println("********************");
System.out.println("");
double s = 0;
String d;
do {
System.out.print("请输入商品编号:");
Scanner input = new Scanner(System.in);
int a = input.nextInt();
if (a == 1) {
System.out.print("请输入购买数量:");
int b = input.nextInt();
double c = 245 * b;
System.out.println("T恤¥245.0数量:" + b + "" + "合计:" + c);
s = s + c;
} else if (a == 2) {
System.out.print("请输入购买数量:");
int b = input.nextInt();
double c = 570 * b;
System.out.println("网球鞋¥245.0数量:" + b + "" + "合计:" + c);
s = s + c;
} else if (a == 3) {
System.out.print("请输入购买数量:");
int b = input.nextInt();
double c = 500 * b;
System.out.println("网球拍¥245.0数量:" + b + "" + "合计:" + c);
s = s + c;
} else {
System.out.println("无此商品");
}
System.out.print("是否继续(y/n)");
d = input.next();
System.out.println();
} while (d.equals("y"));
double m = s * 0.8;
System.out.println("折扣:0.8");
System.out.println("应付金额:" + m);
System.out.print("实际金额:");
Scanner input = new Scanner(System.in);
int x = input.nextInt();
System.out.println();
double p = x - m;
System.out.println("找钱:" + p);
}
这样显示就和截图一样了
System.out.println("********************");
System.out.println("");
System.out.println("请选择购买的商品编号:");
System.out.println("1.T恤(¥245.0)网球鞋(¥570.0)网球拍(¥500.0)");
System.out.println("********************");
System.out.println("");
double s = 0;
String d;
do {
System.out.print("请输入商品编号:");
Scanner input = new Scanner(System.in);
int a = input.nextInt();
if (a == 1) {
System.out.print("请输入购买数量:");
int b = input.nextInt();
double c = 245 * b;
System.out.println("T恤¥245.0数量:" + b + "" + "合计:" + c);
s = s + c;
} else if (a == 2) {
System.out.print("请输入购买数量:");
int b = input.nextInt();
double c = 570 * b;
System.out.println("网球鞋¥245.0数量:" + b + "" + "合计:" + c);
s = s + c;
} else if (a == 3) {
System.out.print("请输入购买数量:");
int b = input.nextInt();
double c = 500 * b;
System.out.println("网球拍¥245.0数量:" + b + "" + "合计:" + c);
s = s + c;
} else {
System.out.println("无此商品");
}
System.out.print("是否继续(y/n)");
d = input.next();
System.out.println();
} while (d.equals("y"));
double m = s * 0.8;
System.out.println("折扣:0.8");
System.out.println("应付金额:" + m);
System.out.print("实际金额:");
Scanner input = new Scanner(System.in);
int x = input.nextInt();
System.out.println();
double p = x - m;
System.out.println("找钱:" + p);
}
这样显示就和截图一样了
全部回答
- 1楼网友:孤独入客枕
- 2021-03-06 21:55
package com.ninemax.vo;
import java.util.Scanner;
public class test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("********************");
System.out.println("");
System.out.println("请选择购买的商品编号:");
System.out.println("1.T恤(¥245.0)网球鞋(¥570.0)网球拍(¥500.0)");
System.out.println("********************");
System.out.println("");
double s = 0;
String d;
do {
System.out.println("请输入商品编号:");
int a = input.nextInt();
if (a == 1) {
System.out.println("请输入购买数量:");
int b = input.nextInt();
double c = 245 * b;
System.out.println("T恤¥245.0数量:" + b + "" + "合计:" + c);
s = s + c;
} else if (a == 2) {
System.out.println("请输入购买数量:");
int b = input.nextInt();
double c = 570 * b;
System.out.println("网球鞋¥245.0数量:" + b + "" + "合计:" + c);
s = s + c;
} else if (a == 3) {
System.out.println("请输入购买数量:");
int b = input.nextInt();
double c = 500 * b;
System.out.println("网球拍¥245.0数量:" + b + "" + "合计:" + c);
s = s + c;
} else {
System.out.println("无此商品");
}
System.out.println("是否继续(y/n)");
d = input.next();
} while (d.equals("y"));
System.out.println("请支付"+s*0.8+"元");
double x=input.nextDouble();
double m = s * 0.8;
System.out.println("折扣:0.8");
System.out.println("应付金额:" + m);
System.out.println("实际金额:" + s);
double p = x - m;
System.out.println("找钱:" + p);
}
}
import java.util.Scanner;
public class test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("********************");
System.out.println("");
System.out.println("请选择购买的商品编号:");
System.out.println("1.T恤(¥245.0)网球鞋(¥570.0)网球拍(¥500.0)");
System.out.println("********************");
System.out.println("");
double s = 0;
String d;
do {
System.out.println("请输入商品编号:");
int a = input.nextInt();
if (a == 1) {
System.out.println("请输入购买数量:");
int b = input.nextInt();
double c = 245 * b;
System.out.println("T恤¥245.0数量:" + b + "" + "合计:" + c);
s = s + c;
} else if (a == 2) {
System.out.println("请输入购买数量:");
int b = input.nextInt();
double c = 570 * b;
System.out.println("网球鞋¥245.0数量:" + b + "" + "合计:" + c);
s = s + c;
} else if (a == 3) {
System.out.println("请输入购买数量:");
int b = input.nextInt();
double c = 500 * b;
System.out.println("网球拍¥245.0数量:" + b + "" + "合计:" + c);
s = s + c;
} else {
System.out.println("无此商品");
}
System.out.println("是否继续(y/n)");
d = input.next();
} while (d.equals("y"));
System.out.println("请支付"+s*0.8+"元");
double x=input.nextDouble();
double m = s * 0.8;
System.out.println("折扣:0.8");
System.out.println("应付金额:" + m);
System.out.println("实际金额:" + s);
double p = x - m;
System.out.println("找钱:" + p);
}
}
- 2楼网友:青灯有味
- 2021-03-06 20:20
刚帮你调测了一下,当你输入"n"的时候,已经跳出循环了,只不过你没有输出提示,以为没出来,
又输入字符了所有报错了,应该是输入金额的,我帮你加了下输出你可以看下结果;
public static void main(String args[]){
System.out.println("********************");
System.out.println("");
System.out.println("请选择购买商品编号:");
System.out.println("1.T恤(¥245.0)网球鞋(¥570.0)网球拍(¥500.0)");
System.out.println("********************");
System.out.println("");
double s=0;
String d;
do{
System.out.println("请输入商品编号:");
Scanner input=new Scanner(System.in);
int a=input.nextInt();
if(a==1){
System.out.println("请输入购买数量:");
int b=input.nextInt();
double c=245*b;
System.out.println("T恤¥245.0数量:"+b+""+"合计:"+c);
s=s+c;
}
else if(a==2){
System.out.println("请输入购买数量:");
int b=input.nextInt();
double c=570*b;
System.out.println("网球鞋¥245.0数量:"+b+""+"合计:"+c);
s=s+c;
}
else if(a==3){
System.out.println("请输入购买数量:");
int b=input.nextInt();
double c=500*b;
System.out.println("网球拍¥245.0数量:"+b+""+"合计:"+c);
s=s+c;
}
else {System.out.println("无此商品");}
System.out.println("否继续(y/n)");
d=input.next();
}while(d.equals("y"));
System.out.println("===========付款===========");
System.out.println("=====输入金额=====");
Scanner input=new Scanner(System.in);
int x=input.nextInt();
double m=s*0.8;
System.out.println("折扣:0.8");
System.out.println("应付金额:"+m);
System.out.println("实际金额:"+x);
double p=x-m;
System.out.println("找钱:"+p);
}
又输入字符了所有报错了,应该是输入金额的,我帮你加了下输出你可以看下结果;
public static void main(String args[]){
System.out.println("********************");
System.out.println("");
System.out.println("请选择购买商品编号:");
System.out.println("1.T恤(¥245.0)网球鞋(¥570.0)网球拍(¥500.0)");
System.out.println("********************");
System.out.println("");
double s=0;
String d;
do{
System.out.println("请输入商品编号:");
Scanner input=new Scanner(System.in);
int a=input.nextInt();
if(a==1){
System.out.println("请输入购买数量:");
int b=input.nextInt();
double c=245*b;
System.out.println("T恤¥245.0数量:"+b+""+"合计:"+c);
s=s+c;
}
else if(a==2){
System.out.println("请输入购买数量:");
int b=input.nextInt();
double c=570*b;
System.out.println("网球鞋¥245.0数量:"+b+""+"合计:"+c);
s=s+c;
}
else if(a==3){
System.out.println("请输入购买数量:");
int b=input.nextInt();
double c=500*b;
System.out.println("网球拍¥245.0数量:"+b+""+"合计:"+c);
s=s+c;
}
else {System.out.println("无此商品");}
System.out.println("否继续(y/n)");
d=input.next();
}while(d.equals("y"));
System.out.println("===========付款===========");
System.out.println("=====输入金额=====");
Scanner input=new Scanner(System.in);
int x=input.nextInt();
double m=s*0.8;
System.out.println("折扣:0.8");
System.out.println("应付金额:"+m);
System.out.println("实际金额:"+x);
double p=x-m;
System.out.println("找钱:"+p);
}
- 3楼网友:千杯敬自由
- 2021-03-06 19:53
实测发现按n或其他非y的键 循环跳出,输入一个付款金额即可打印出结果。总金额(即付款金额?)计算的也是正确的
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯