在Java

时间:2015-09-25 04:45:01

标签: java if-statement

我的变量是

float amountLeft, amount;
char v1;

我的目标是让用户知道如果他使用超过1000美元他将负债,用户可以继续购买,但他将负债。我无法理解负数。我如何跟踪负数? 例如:“你刚刚超过你的限制。你欠我们-5美元”

如果你想在这里查看我的代码,那就是。

 amountLeft = 1000.0f;
    while(amountLeft > 0) {
      System.out.println(String.format("%3s %,1.2f %3s", "You have"  , amountLeft, "money remaining to spend."));
      System.out.println("Enter the cost of the item you want buy");
    amount = new Scanner(System.in).nextFloat();
      System.out.println("are you sure you wanna purchase this item?");
      v1 = keyboard.next().charAt(0);
      if (v1 == 'y')
      {
        amountLeft = amountLeft - amount;
        System.out.printf("%.2f",amountLeft);

3 个答案:

答案 0 :(得分:1)

您可以创建一种情况,允许该用户在消极if (amountleft < 0)

时消费

此外,该循环应为while (amount >= 0),因为如果用户为0美元,用户将不会欠任何东西。

答案 1 :(得分:1)

只需在您的金额内添加新的声明:

if (amountLeft < 0) {
   // alert user that hes over the amount
}

在代码末尾添加此项,然后您可以在执行循环的每个类型中打印其负数。

然后您可以按正常方式打印金额。

变量可以从正数开始,以负数结束,或者从正数变为负数,变为正数,没有戏剧性。

答案 2 :(得分:0)

让我解释一下你的问题。你想让用户买东西,即使他/她的钱还不够。每次他/她这样做,你打印“你欠我们$ xxx”。但现在你正在打印“你欠我们$ -xxx”。您基本上希望将负数打印为正数,对吧?

其他答案告诉您如何检查负值但实际上是在询问如何将负值打印为正值。

java.lang.Math课程中有一种方法!您可以这样打印-5作为正数:

System.out.println ("You owe us $" + Math.abs(amountLeft));