【问题标题】:My conditional isn't working, i'm a beginner programmer我的条件不起作用,我是初学者程序员
【发布时间】:2015-05-19 07:44:50
【问题描述】:
double a = 10;// the 10 dollars to spend
double b = 0;// the cost of he food
double c;// final total
double d;// amount of sandwiches
c = a-b;
String Order;
Scanner sc = new Scanner(System.in);

这就是我要做的事情,我的目标是获取三明治的数量并将其相乘;当数字是 2 或更低时,她说一件事 3 或更高的另一件事。问题是它要求我将变量初始化为 0,但显然 d*0 仍然为零。

System.out.println("That'll be 1.06 how many would you like?");
b = 1.06*d;
d = sc.nextDouble();
System.out.println(d <= 2 ?"Ok! Coming right up Sir!":"...Ok.... she     probably thinks you're a fatso now.");
System.out.println("She hands you back "+(a-b)+" as your change");
break;

【问题讨论】:

  • 我知道这是一个示例问题,但是给你的变量一些有意义的名字来配合 cmets.. 也许你可以代替 b,(双倍成本;)
  • 你为什么要先计算总和,然后才问有多少汉堡?在现实世界中,我们通常反之亦然
  • 我曾经教新手编程。我必须理解的一个基本想法是,尽管计算机速度如此之快,以至于它们似乎可以同时完成所有事情,但它们并没有。他们按顺序执行这些步骤,一次一个,并且他们必须完成每个步骤才能开始下一个步骤。而且,他们不知道你想做什么。即使您不确定该告诉他们该做什么,他们也只会按照他们的吩咐去做。

标签: java operators conditional


【解决方案1】:

问题出在这里:

System.out.println("That'll be 1.06 how many would you like?");
b = 1.06*d;
d = sc.nextDouble();

你还没有初始化d,所以当你做乘法时,你什么都没有。在乘以 b 之前,您需要将扫描仪的值加载到 d

System.out.println("That'll be 1.06 how many would you like?");
d = sc.nextDouble();
b = 1.06*d;

【讨论】:

  • 不用担心。请务必选择回答您问题的帖子以奖励回答者。
【解决方案2】:

交换作业顺序。

b = 1.06*d; // <-- what's d?
d = sc.nextDouble();

喜欢

d = sc.nextDouble();
b = 1.06 * d;

另外,你应该选择更有意义的变量名。

【讨论】:

    猜你喜欢
    • 2021-04-15
    • 1970-01-01
    • 1970-01-01
    • 2016-02-12
    • 2021-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-28
    相关资源
    最近更新 更多