gpt4 book ai didi

delphi - 仅当在 if then 中满足条件时才检查条件

转载 作者:行者123 更新时间:2023-12-03 19:24:15 25 4
gpt4 key购买 nike

我有一个代码示例,但不确定最好使用哪种方式。

例如我有

if (x = 1) and (y = 2) and (if abc = false then check if z = 3) then
begin
...

只检查
if x = 1
if y = 2
if abc = false check z = 3. if abc = true then dont check z = 3

我不确定我是否解释得最好,但希望人们能理解。

我想知道这是否可行或最好的方法。请记住,而不是示例中的 x、y、z 和 abc。我可以使用更多。

我目前的结构...我认为这不实用,并认为有更好的方法,但我不确定
if (abc = false) then
begin
if (x = 1) and (y = 2) and (z = 3) then
begin
...
end
else
begin
if (x = 1) and (y = 2) then
begin
...

提前致谢

最佳答案

我想你正在寻找 or .现在您将检查 x 必须为 1,y 必须为 2,如果 abc 为假,则 z 必须为 3。

如果 abc = true,z 仍然可以是 3,但不会被检查。

请注意,我刚刚写了 abc而不是 abc = true .因为它已经是一个 bool 值(真/假),所以这是允许的。

还要注意如何使用括号对操作进行分组。总子表达式 abc or (z=3)必须返回 true 才能使总表达式返回 true。

此外,术语的顺序很重要——它们是从左到右评估的。如果词条(abc or (z=3))被逻辑等效项 ((z=3) or abc) 替换然后 z=3 被评估。

if (x = 1) and (y = 2) and (abc or (z = 3)) then
// Your magic goes here

测试程序主体以证明顺序很重要
function z : Integer;
begin
writeln('Z being evaluated');
result := x + y;
end;

begin
x := 1;y := 2;
abc := true;
if (x=1) and (y=2) and (abc or (z=3)) then
writeln ('evaluated true')
else
writeln ('evaluated false');
writeln('done');
readln;
end.

关于delphi - 仅当在 if then 中满足条件时才检查条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55454953/

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