gpt4 book ai didi

java - 如何在 Java 中管理状态变化

转载 作者:行者123 更新时间:2023-12-03 01:34:35 24 4
gpt4 key购买 nike

public void manage()
{
double speed = getSpeedfromVehicle();

if(speed >=0 && speed <= 10)
{
System.out.println("Low Speed mode");
}
else if(speed > 10 && speed < 60)
{
System.out.println("Medium Speed Mode");
}
else if(speed >= 60)
{
System.out.println("High Speed Mode");
}

}

当车辆开始移动时,每次速度变化都会调用我的管理方法。如果速度保持在一个类别(0 到 10),我只需要打印一次输出语句,即使对于速度 0 到 10,manage() 被无限次调用。对于其他速度范围也应该发生这种情况。它还应该切换到其他速度范围,并且应该只打印每个速度范围一次。

最佳答案

您需要一个变量来检查当前速度模式的状态。我会考虑使用枚举类,并将我的速度状态作为值。每次速度范围发生变化时,您都会更新本地 SpeedState 枚举值并在 manage() 方法中对其进行验证。

在我的脑海中,它看起来像下面这样......

public enum SpeedState {
LOW, MEDIUM, HIGH
}


public class Drive{
private SpeedState state;

// Supporting code, loops, etc

public void manage(){
double speed = getSpeedfromVehicle();

if((speed >=0 && speed <= 10) && state != SpeedState.LOW)
{
state = SpeedState.LOW;
System.out.println("Low Speed mode");
}
else if((speed > 10 && speed < 60) && state != SpeedState.MEDIUM)
{
state = SpeedState.MEDIUM;
System.out.println("Medium Speed Mode");
}
else if((speed >= 60) && state != SpeedState.HIGH)
{
state = SpeedState.HIGH;
System.out.println("High Speed Mode");
}
}
}

关于java - 如何在 Java 中管理状态变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18765197/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com