java - 为什么它打印两次?如果别的

标签 java if-statement

<分区>

我正在学习 java atm ,不得不编写代码来计算货币单位,并且只使用单数词表示单个单位,使用复数词表示复数单位来显示非零面额。

这是目前的代码:

import java.util.Scanner;

public class ComputeChange {
    public static void main(String[] args) {

        Scanner input = new Scanner(System. in );
        // receive amount
        System.out.println("Enter an amount in double, for example 11.56: ");

        double amount = input.nextDouble();

        int remainingAmount = (int)(amount * 100);

        // find the number of one dollars
        int numberOfDollars = remainingAmount / 100;
        remainingAmount = remainingAmount % 100;

        // find the number of quarters in the remaing amount
        int numberOfQuarters = remainingAmount / 25;
        remainingAmount = remainingAmount % 25;

        //find the number of dimes in the remaing amount
        int numberOfDimes = remainingAmount / 10;
        remainingAmount = remainingAmount % 10;

        //find the number of nickels in the remaing amount 
        int numberOfNickles = remainingAmount / 5;
        remainingAmount = remainingAmount % 5;

        //find the number of pennies in the remaining amount
        int numberOfPennies = remainingAmount;

        //Display results
        System.out.println("Your amount" + amount + "consists of");

        if (numberOfDollars > 1) {
            System.out.println(" " + numberOfDollars + "dollars");
        } else if (numberOfDollars == 1); {
            System.out.println(" " + numberOfDollars + "dollar");
        }

输出是: 运行:

Enter an amount in double, for example 11.56: 
12,33
Your amount12.33consists of
 12dollars
 12dollar
 1quarters
 1quarter
 0dimes
 0dime
 1nickles
 1nickle
 3pennies
 3penny

为什么所有内容都打印了两次? 3 == 不是 1 那么为什么它仍然说 3 便士? 也许是新手问题,但那是因为我是其中之一 :) 感谢您的帮助!

最佳答案

因为你在第二个if之后添加了一个随机的;。因此,您的第二个 System.out.println 不是 if 语句的一部分。删除它:

if (numberOfDollars > 1) {
    System.out.println (" " + numberOfDollars + "dollars");
} else if (numberOfDollars == 1) {
    System.out.println (" " + numberOfDollars + "dollar");
}

关于java - 为什么它打印两次?如果别的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32863571/

相关文章:

java - 将多个选项与特定条件相匹配

java - 如何使用Java将字符串中单词的第一个字母大写?

java - 防止使用 ModelBuilder.createArrow 创建时箭头较长时为 "fatter"

java - 需要多个 return 语句的函数

bash - 在Bash中,为什么 '['和 ']'周围应该有空格?

javascript - 请有人解释一下这段简短而甜蜜的 JavaScript 代码

java - 棋盘游戏在 Java 中的实现

java - 如何使用 DirectoryStream.Filter 过滤隐藏文件

c# - gridview 和 if 语句

php - 将条件多次插入到 1 个表中