编程JAVA入门基础题,求大神帮忙解答下,详细点谢谢!

题目:折扣计算(普通顾客购物满100元打9折;会员购物打8折;会员购物满200元打7.5折)利用嵌套if结构。

运行有上图效果!
我的代码:
import java.util.Scanner;

public class zuoye1
{
public static void main(String[] args)
{
Scanner input=new Scanner(System.in);

System.out.println("请输入是否是会员:是(y)/否(n)");

String a=input.next();

System.out.println("请输入购物金额");

double money=input.nextDouble();
我只能做到输入金额,后面的实际支付不知道怎么实现,请大神帮帮我,谢谢!

public static void main(String[] args){

System.out.println("请输入是否是会员:是(y)/否(其它字符)");

Scanner scanner = new Scanner(System.in);

String str = scanner.nextLine();
boolean vip = false;

if(str != null && str.contains("y") && str.length() == 1){
vip = true;
}

System.out.println("请输入购物金额:");

double money = scanner.nextDouble();
double defray = money;

if(vip){
if(money >= 200){
defray = money * 0.75;
} else{
defray = money * 0.8;
}
} else{
if(money >= 100){
defray = money * 0.9;
}
}

System.out.println(String.format("实际支付金额:%f" ,defray));

scanner.close();
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-05-09

数字不近似了 自己做近似

if("y".equals(a)){
   if(money>=100)
       System.out.println("money*0.9");
   else
       System.out.println("money");
}else{
   if(money>=200)
       System.out.println("money*0.75");
   else
       System.out.println("money*0.8");    
}

追问

if("y".equals(a))这个是什么意思,如果没有这个我直接if(money>=100),然后打印 System.out.println("money*0.9")可以吗?

追答

System.out.println("请输入是否是会员:是(y)/否(n)");
String a=input.next();

你自己声明了变量 a 用来区分是否是会员 if("y".equals(a)) 用来判断是否是会员的。

没有直接打印结果不就不能区分会员和非会员了。

追问

还是会报错误的

本回答被网友采纳