IF嵌套IF语句中,为何只有一个end if?

时间:2022-08-13 19:08:08
例如:
if rb_1.checked = true then
    XXXXXXXXXXXXXXXXXXXX
elseif rb_2.checked = true then
    XXXXXXXXXXXXXXXXXXXX
else
    XXXXXXXXXXXXXXXXXXXX
end if
只有一个end if 
有的If语句中还没有end if,谁可以告诉我这中间的规律(什么时候不加end if,什么时候加一个end if,什么时候加我个end if?),我是初学者,谢谢

7 个解决方案

#1


确实容易误解,建议按标准写法:
if rb_1.checked = true then
   XXXXXXXXXXXXXXXXXXXX
else
   if rb_2.checked = true then
      XXXXXXXXXXXXXXXXXXXX
   else
       XXXXXXXXXXXXXXXXXXXX
   end if
end if
这样就不会糊涂了。

#2


if语句有几种格式,其中一种就是:
if     条件1 then
   .....
elseif 条件2 then
   .....
elseif 条件3 then
   .....
elseif 条件4 then
   .....
elseif 条件5 then
   .....
elseif 条件6 then
   .....
elseif 条件7 then
   .....
else
   .....
end if
 这种if语句相当于 choose case 语句。
慢慢体会吧,你会懂的!

#3


在 PB 中 IF 语句有两种使用方式:

1. 单行

IF condition THEN action1 {ELSE action2}

此方式在单行内书写,不用 EDN IF ,在 action1 或 action2 可嵌套单行 IF 语句

2. IF 语句块

IF condition1 THEN
     action1
{ ELSEIF condition2 THEN action2 . . . }
{ ELSE action3}
END IF

此方式中,以 END IF 作结束词, 块内 可嵌套使用单行 IF 语句 或 IF 语句块,做为特殊情况, ELSEIF 和它的主词 IF 搭配,虽然不是单行书写,但也不用 END IF 作结束词.而且,在一个 IF  THEN 主词内可并用多个 ELSEIF


3.PB 还有一个IF 函数
  If ( boolean, truevalue, falsevalue )

#4


白兔的写法与楼主的代码不是等价的.

PB 的 IF 语句还是挺灵活.

#5


为什么我举的那个例子只有一个end if ,这样语法算不算错误?

#6


PB的语法不是那么严谨.尾部ENDIF可以不写不过,最好写上.

#7


“PB的语法不是那么严谨.尾部ENDIF可以不写不过,最好写上.”

这话是对 PB 不负责任,也是对兄弟们不负责任。

  在上面已说过,IF ...  THEN ... 语句块必须用 END IF 结束.
  而单行 IF 语句不需要也不能用 END IF 结束.
  作为特例,应用在 IF ...  THEN ... 语句块内 ELSEIF ,虽然也可多行书写,但也不能用 ENDIF 结束.

#1


确实容易误解,建议按标准写法:
if rb_1.checked = true then
   XXXXXXXXXXXXXXXXXXXX
else
   if rb_2.checked = true then
      XXXXXXXXXXXXXXXXXXXX
   else
       XXXXXXXXXXXXXXXXXXXX
   end if
end if
这样就不会糊涂了。

#2


if语句有几种格式,其中一种就是:
if     条件1 then
   .....
elseif 条件2 then
   .....
elseif 条件3 then
   .....
elseif 条件4 then
   .....
elseif 条件5 then
   .....
elseif 条件6 then
   .....
elseif 条件7 then
   .....
else
   .....
end if
 这种if语句相当于 choose case 语句。
慢慢体会吧,你会懂的!

#3


在 PB 中 IF 语句有两种使用方式:

1. 单行

IF condition THEN action1 {ELSE action2}

此方式在单行内书写,不用 EDN IF ,在 action1 或 action2 可嵌套单行 IF 语句

2. IF 语句块

IF condition1 THEN
     action1
{ ELSEIF condition2 THEN action2 . . . }
{ ELSE action3}
END IF

此方式中,以 END IF 作结束词, 块内 可嵌套使用单行 IF 语句 或 IF 语句块,做为特殊情况, ELSEIF 和它的主词 IF 搭配,虽然不是单行书写,但也不用 END IF 作结束词.而且,在一个 IF  THEN 主词内可并用多个 ELSEIF


3.PB 还有一个IF 函数
  If ( boolean, truevalue, falsevalue )

#4


白兔的写法与楼主的代码不是等价的.

PB 的 IF 语句还是挺灵活.

#5


为什么我举的那个例子只有一个end if ,这样语法算不算错误?

#6


PB的语法不是那么严谨.尾部ENDIF可以不写不过,最好写上.

#7


“PB的语法不是那么严谨.尾部ENDIF可以不写不过,最好写上.”

这话是对 PB 不负责任,也是对兄弟们不负责任。

  在上面已说过,IF ...  THEN ... 语句块必须用 END IF 结束.
  而单行 IF 语句不需要也不能用 END IF 结束.
  作为特例,应用在 IF ...  THEN ... 语句块内 ELSEIF ,虽然也可多行书写,但也不能用 ENDIF 结束.