【问题标题】:New to java stuck on Decision Making in javaJava新手卡在Java中的决策制定
【发布时间】:2026-01-21 09:50:01
【问题描述】:

我创建了一个名为 Bicycle 的类,现在我想将自行车的档位限制为 6。大于 6 的值会出错并显示消息:

System.out.println "错误...!!请输入一个介于 1-6 之间的数字"。

有人可以告诉我需要做什么才能在下面提到的程序中获得所需的结果吗?对于 Java 中的决策,我需要在哪里声明条件以便执行?

public class Bicycle {
   
        int cadence = 0;
        int speed = 0;
        int gear = 1;

    void changeCadence(int newValue) {
        cadence = newValue;
    }

    void changeGear(int newValue) {
        gear = newValue;
    }

    void speedUp(int increment) { speed = speed + increment; }

    void applyBrakes(int decrement) { speed = speed - decrement;}

    void printStates() {
        System.out.println("cadence:" + cadence + " speed:" + speed + " gear:" + gear);
    }

    void vehicleType() {
        System.out.println("Vehicle Type: Bicycle");
    }
}
   class BicycleDemo {

       public static void main(String[] args) {

                Bicycle bike1 = new Bicycle();
                Bicycle bike2 = new Bicycle();

                bike1.changeCadence(50);
                bike1.applyBrakes(0);
                bike1.changeGear(1);
                bike1.printStates();

                bike2.changeCadence(50);
                bike2.speedUp(10);
                bike2.changeGear(2);
                bike2.changeCadence(40);
                bike2.speedUp(20);
                bike2.changeGear(4);
                bike2.printStates();
            } 
        }

【问题讨论】:

    标签: if-statement local-variables design-decisions


    【解决方案1】:

    改变

    void changeGear(int newValue) {
        gear = newValue;
    }
    

    void changeGear(int newValue) {
        if (newValue < 1 || newValue > 6) {
            System.out.println("Error...!! Please enter a number between 1-6");
        } else {
        gear = newValue;
        }
    }
    

    【讨论】:

    • 感谢您的帮助...!! :)
    【解决方案2】:
    void changeGear(int newValue) {
       if(newValue < 1 || newValue > 6)
         throw new IllegalArgumentException("Please, enter a number between 1-6");
       else gear = newValue;
     }
    

    void changeGear(int newValue) {
       if(newValue < 1 || newValue > 6)
         System.out.println("Please, enter a number between 1-6");
       else gear = newValue;
     }
    

    您可以抛出一个异常,这是一个实际错误,或者只是执行您的代码并将消息打印到控制台,唯一的区别是一旦满足条件,异常就会停止所有进一步的执行(取决于您的逻辑) .但这与aconnelly 已经提到的差不多。

    【讨论】:

    • 感谢您的帮助...!! :)