gpt4 book ai didi

c# - 结束 else if 语句 C#

转载 作者:行者123 更新时间:2023-12-02 09:37:32 25 4
gpt4 key购买 nike

除了 if 语句之外,我不知道在这种情况下还能使用什么。

我想做的是从 Windows 表单中获取一个值字符串方向;,并检查它是否具有我正在寻找的值。然后检查turtleDir是否是一个字符串值,指示turtleDir的方向。

问题出现在 else if 语句处,当 turtleDirlookingleft 时,它会执行所有 else if 语句。我希望它做的是在完成 else if 语句之后它需要停止并等待下一个命令。不检查所有的陈述。

有人可以告诉我如何修复它以及我做错了什么吗?

这是代码:

else if ( Program.form.direction == "right" ) 
{
if ( turtleDir == "left" )
{
angle = -1.6f;
turtleDir = "lookingLeft";
Program.form.direction = "";
}
else if ( turtleDir == "lookingLeft" )
{
angle = 3.15f;
turtleDir = "lookingDown";
}
else if ( turtleDir == "lookingDown" )
{
angle = 1.6f;
turtleDir = "lookingRight";
}
else if ( turtleDir == "lookingRight" )
{
angle = 0.0f;
turtleDir = "lookingUp";
}
}

最佳答案

您也可以在字符串上使用 switch 语句:

switch (turtleDir) {
case "left":
angle = -1.6f;
turtleDir = "lookingLeft";
Program.form.direction = "";
break;
case "lookingLeft":
angle = 3.15f;
turtleDir = "lookingDown";
break;
// other cases
}

这样,switch block 总是在指令完成后退出。您还可以通过在末尾添加 case default: 来指定当字符串与这些值都不匹配时要执行的操作。请记住,每种情况都需要通过 break 语句(或 return/throw 终止,但我认为您不需要此中的那些案件)。

如果仍然执行每个案例,那么您的问题出在其他地方。如果一个方法包含此代码并且从例如开始调用turtleDir == "left",每次连续调用该方法都会让 turtleDir 循环,直到执行完每个 case 并且 turtleDir 最终得到最终值“lookingUp”。因此,请查看您的控制流程,并跟踪您是否已执行此检查。也许跟踪耗时并仅在它处于特定状态一段时间后才更改 turtleDir (我不知道您的要求)。

编辑:您应该在每个case语句中设置Program.form.direction = ""。这就是为什么你的代码会被一遍又一遍地执行。另外,如果没有输入方向,也将其清除。

关于c# - 结束 else if 语句 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10845556/

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