【问题标题】:Switch statement(prices are in 5-cent increments)Switch 声明(价格以 5 美分递增)
【发布时间】:2019-03-08 01:49:27
【问题描述】:

金额不能低于 25 美分或高于 1 美元。此外,根据问题,价格以 5 美分递增。

如果用户输入无效数据,则应显示错误消息并且不进行任何处理。

我也想知道是否可以使用循环而不是使用 switch 语句

提前谢谢你:)

我的代码:

import java.util.Scanner;

public class VendingMachine {

    public static void main (String[]args) {

        int exchange;
        int quarters;
        int dimes;
        int nickels;
        int pennies;

        Scanner money = new Scanner(System.in);

        System.out.println("Enter a price of item\n"
                + "(from 25 cents to a dollar, in 5-cent increments.");

        exchange = money.nextInt();

        switch(exchange)

        {
        case 25: 
            System.out.println("You bought an item for " + exchange + " cents and gave me a dollar"); break;
        case 30: 
            System.out.println("You bought an item for " + exchange + " cents and gave me a dollar"); break;
            case 35:
            System.out.println("You bought an item for " + exchange + " cents and gave me a dollar"); break;
        case 40: 
            System.out.println("You bought an item for " + exchange + " cents and gave me a dollar"); break;
        case 45:
            System.out.println("You bought an item for " + exchange + " cents and gave me a dollar"); break;
        case 50:
            System.out.println("You bought an item for " + exchange + " cents and gave me a dollar"); break;
        case 55:
            System.out.println("You bought an item for " + exchange + " cents and gave me a dollar"); break;
        case 60: 
            System.out.println("You bought an item for " + exchange + " cents and gave me a dollar"); break;
        case 65: 
            System.out.println("You bought an item for " + exchange + " cents and gave me a dollar"); break;
        case 70: 
            System.out.println("You bought an item for " + exchange + " cents and gave me a dollar"); break;
        case 75: 
            System.out.println("You bought an item for " + exchange + " cents and gave me a dollar"); break;
        case 80: 
            System.out.println("You bought an item for " + exchange + " cents and gave me a dollar"); break;
        case 85: 
            System.out.println("You bought an item for " + exchange + " cents and gave me a dollar"); break;
        case 90: 
            System.out.println("You bought an item for " + exchange + " cents and gave me a dollar"); break;
        case 95: 
            System.out.println("You bought an item for " + exchange + " cents and gave me a dollar"); break;
        case 100: 
            System.out.println("You bought an item for " + exchange + " cents and gave me a dollar"); break;
        default:
            System.exit(0);

        }

         exchange = 100 - exchange;

         System.out.println("Amount in Return: " + exchange + " cents");

         quarters = exchange / 25;
         exchange = exchange % 25;

         dimes = exchange / 10;
         exchange = exchange % 10;

         nickels = exchange / 5;
         exchange = exchange % 5;

         pennies = exchange;

         System.out.println("Quarters: " + quarters + "\nDimes: " + dimes + "\nNickels: " + nickels + "\nPennies: " + pennies);

    }
}

【问题讨论】:

  • 如果您的意思是要删除开关,您可以检查 if (exchange >= 25 && exchange

标签: java switch-statement default break


【解决方案1】:

很容易检查这种情况。你可以使用这样的东西:

if (exchange >= 25 && exchange <= 100 && exchange % 5 == 0)
    System.out.println("You bought an item for " + exchange + " cents and gave me a dollar");
else {        
    System.out.println("Invalid number!");
    System.exit(0);
}
// rest of your code

【讨论】:

  • else 中包含错误消息他想要错误消息
  • 感谢您的帮助。我没有看到它,我现在完成它。
  • @Amin System.out.println("Invalid number"); 应该在 System.exit(0); 之前
【解决方案2】:

正如 amin 在 cmets 中指出的,您可以检查无效条目

if (!(exchange >= 25 && exchange <= 100 && exchange % 5 == 0))
    System.out.println(" you entered invalid number ");

改成for循环

for(int i=25;i<=100;i=i+5){
   if(exchange == i){
    System.out.println("You bought an item for " + exchange + " cents and gave me a dollar"); 
      break;
    } 
else{
  System.exit(0);
    }

}

【讨论】:

    猜你喜欢
    • 2012-09-14
    • 1970-01-01
    • 2015-04-21
    • 2021-02-24
    • 1970-01-01
    • 1970-01-01
    • 2016-02-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多