我无法弄清楚如何跳出包含 switch 语句的循环。Break 脱离开关,而不是循环。
可能有一个更优雅的解决方案。我已经实现了一个标志,该标志以 true 开头并设置为 false 并结束循环。你能提供更好的解决方案吗?
背景:此代码用于条码工作流系统。我们有内置条形码扫描仪的 PocketPC。此代码用于其中一项功能。它在整个例程中提示用户输入不同的数据。这部分允许他们滚动浏览一些在 PocketPC 终端上显示该信息的库存记录(分页结果),并允许他们输入“D”表示完成,“Q”表示退出。
这是当前需要改进的 C# 示例:
do
{
switch (MLTWatcherTCPIP.Get().ToUpper())
{
case "": //scroll/display next inventory location
MLTWatcherTCPIP.TerminalPrompt.ScrollBodyTextDown();
break;
case "P": //scroll/display previous inventory location
MLTWatcherTCPIP.TerminalPrompt.ScrollBodyTextDown();
break;
case "D": //DONE (exit out of this Do Loop)
// break; // this breaks out of the switch, not the loop
// return; // this exists entire method; not what I'm after
keepOnLooping = false;
break;
case "Q": //QUIT (exit out to main menu)
return;
default:
break;
}
} while (keepOnLooping);
这是在 VB.NET 中执行此操作的代码示例
Do
Select Case MLTWatcherTCPIP.Get().ToUpper
Case "" ''#scroll/display next inventory location
MLTWatcherTCPIP.TerminalPrompt.ScrollBodyTextDown()
Case "P" ''#scroll/display previous inventory location
MLTWatcherTCPIP.TerminalPrompt.ScrollBodyTextUp()
Case "D" ''#DONE (exit out of this Do Loop)
Exit Do
Case "Q" ''#QUIT (exit out to main menu)
Return
End Select
Loop
谢谢,