首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

关于if语句的疑惑解决思路

2012-03-04 
关于if语句的疑惑从书上看见如下代码,对thennowtag:nowtagand(buf[i]$E)这种用法感到困惑,then后面语句

关于if语句的疑惑
从书上看见如下代码,对then   nowtag:=nowtag   and   (buf[i]=$E)
这种用法感到困惑,then后面语句接and是什么意思?请高手解答一下
var  
buf   array   of   byte
nowtag   :boolean
begin
nowtag:=true;
for   i:=0   to   20   do
begin
if   ((i   mod   2)=0   )   then   nowtag:=nowtag   and   (buf[i]=$E)
      else   nowtag:=nowtag   and   (buf[i]=$A);
      if   not   nowtag   then   break;
end;                          
end;


[解决办法]
nowtag:=nowtag and (buf[i]=$A);

=======================
if nowtag and (buf[i]=$A) then nowtag:=true
else nowtag:=false;
[解决办法]
这样写比较直观:

if ((i mod 2)=0 ) then
nowtag:=nowtag and (buf[i]=$E)
else
nowtag:=nowtag and (buf[i]=$A);

if not nowtag then break;

--------------------------------------
nowtag:=nowtag and (buf[i]=$E)
是逻辑运算
因为 nowtag 是 Boolean 类型。

(buf[i]=$E)
判断 buf[i] 是否等于 $E , 它返回 True 或 False
然后再与 nowtag and,就又得到一个 Boolean,
最后赋值给 nowtag。

热点排行