delphi - CASE <var> OF 实际上意味着 CASE <var> EQUALS 吗?

标签 delphi pascal freepascal turbo-pascal

CASE <var/expr> OF
      1: <do statement>;
      2: <do statement>;
   3..5: <do statement>;
END;

始终有效意味着:

(in) CASE <var/expr> EQUALS
      1: <do statement>;
      2: <do statement>;
   3..5: <do statement>;
     ^ value/char in range
END;

翻译成自然语言? 我只是想知道为什么要做出这样的措辞选择。否则 Pascal 语法看起来很自然,符合语法。但也许我对“案例陈述”的理解不正确?

编辑:添加范围大小写和 (in) 两边的括号,因为它使人感到困惑。

最佳答案

它可以读作“如果 var 是 value1 do_this,如果 var 是 value2 do_that...”。所以它确实意味着平等。

像这样的语句

case v of
  value1: do_this;
  value2: do_that;
else
  do_something_else;
end;

归结为

if v = value1 then
  do_this
else if v = value2 then
  do_that
else
  do_something_else;

关于delphi - CASE <var> OF 实际上意味着 CASE <var> EQUALS 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74182282/

相关文章:

delphi - 如何自动删除未更新的clientdataset记录

console - 在 Free Pascal 中捕获堆栈跟踪

algorithm - Pascal 编程帮助

delphi - Indy 9 与 Lazarus/Free Pascal 兼容吗

delphi - 如何使自定义 GUI 控件对屏幕阅读器可见?

delphi - 使用 Delphi 2010 进行高级编程的基本技能是什么?

delphi - "IMAGE_FILE_LARGE_ADDRESS_AWARE"是否应该在Delphi6中工作才能有效避免EOutOfMemory错误?

pascal - 如何在 Pascal 中使用具有不同数据类型的多个参数制作函数?

delphi - Pascal编译器需要SecureZeroMemory函数吗?

Pascal 中作为返回值的函数