IT Java 一个循环中的计算问题

来源:百度知道 编辑:UC知道 时间:2024/06/20 09:27:56
import java.util.*;
public class Pay {
public static void main(String[] args){
System.out.println("我型我素购物管理系统 > 购物结算\n\n");
System.out.println("*******************************");
System.out.println("请选择购买商品编号:\n");
System.out.println("1.T恤\t2.网球鞋\t3.网球拍");
System.out.println("********************************");
int Spbianhao; //商品编号
int Spgeshu; //商品个数
double discount = 0.8; //会员折扣
double tatal = 0; //购物总金额
double finalPay = 0; //打折后需付款
double payment; //实际交费金额
double returnMoney; //找钱
String answer = "y";
Scanner in = new Scanner(System.in);
while(answer.equals("y")){
System.out.println("请输入商品编号:");
Spbianhao = in.nextInt();
System.out.println("请输入购买的数量:");
Spgeshu =in.nextInt();
switch(Spbianhao){

楼主,一步步给你分析.
1.定义int Spgeshu商品个数变量的时候3种商品是公用的一个变量
2.在switch中根据Spbianhao商品编号计算单种商品价格的时候一次循环中只用到一次Spgeshu变量
3.在 tatal =tatal + (245*(Spgeshu)+570*(Spgeshu)+320*(Spgeshu)); 语句中tatal是按照3种商品都具有Spgeshu来计算价格的
4.就是说在计算一件商品总价的同时多算了其他两件商品同数量的价格,所以tatal总计就不正确了。
PS:把3种商品用3个变量并且在进入while循环的时候赋0值可解决,同样,可以像3楼一样把每项商品总价在外部定义变量然后
tatal = tatal+Tmoney+Wqxmoney+Wqpmoney;

我知道你哪里错了 不过你最好靠自己找出来!

给你个提示~

System.out.println("请输入购买的数量:");
Spgeshu = in.nextInt();

System.out.println("是否继续(y/n):");
answer = in.next();
System.out.println("\n");
tatal = tatal
+ (245 * (Spgeshu) + 570 * (Spgeshu) + 320 * (Spgeshu));

这里好好检查!!!

已改好,变量要在外面声明哦

import java.util.*;

public class Pay {
public static void main(String[] args) {
System.out.println("我型我素购物管理系统 > 购物结算\n\n");
System.out.println("*****