import java.util.Scanner;
public class PayDemo{
public static void main(String [] args){
//创建文件扫描器对象,System.in表示的是标准输入,可以从控制台读取数据(装饰者模式)
Scanner sc = new Scanner(System.in);
System.out.println("*****************************");
System.out.println("请选择购买的商品编号:");
System.out.println("1.Tshirt\t2.网球鞋\t3.网球拍");
System.out.println("*****************************");
double money = 0; //物品单价
double oneMoney = 0;//单类物品总价
double allMoney = 0;//物品总价
double discount = 0.8;//折扣
String good;
String continu="y";//循环控制条件
boolean flag = true;
while (continu=="y"){
System.out.println("************"+continu);
System.out.println("请输入商品编号");
int number = sc.nextInt();
System.out.println("请输入购买数量");
int many = sc.nextInt();
if (number == 1){
money = 245.0;
good = "Tshirt";
}
else if(number == 2){
money = 570.0;
good = "网球鞋";
}else{
money = 320.0;
good = "网球拍";
}
oneMoney = many*money;//单类物品总价
System.out.println(good+"¥:"+money+"\t数量:"+number+"\t合计:"+oneMoney);
System.out.println("是否继续购买?");
sc.nextLine();//把换行符读走
continu = sc.nextLine();
System.out.println("************"+continu);
allMoney = allMoney + oneMoney;//累加
}
System.out.println("折扣:"+discount);
System.out.println("应支付金额:"+allMoney);
System.out.println("实付金额:");
while(flag){
int coustom = sc.nextInt();
if (allMoney>coustom){
System.out.println("您输入的金额小于应付金额,请重新输入:");
}
else{
System.out.println("找零:"+(coustom-allMoney));
break;
}
}
}
}
continu=="y"
应该改为 "y".equals(continu)
,在 Java 中 ==
比较的是对象的内存地址是否为同一个,String 的 equals 方法比较的才是字符串的内容是否相同。
while (continu=="y"){
改为:
while (continu.equals("y")){
continu是字符串类型,比较要用equals()方法。
字符串的比较相等要用继承自Object的equals方法或者Objects中的equals方法
第19行代码,while判断里的字符串比较改成:continu.equals("y")
字符串不能通过==的方式比较
while ("y".equals(continu.trim()))
好用望采纳