C语言解释器-9 控制结构之if
2013-03-28 16:47
323 查看
勿庸质疑,说到控制结构,首先会想到if。其实现应如下所示:
运行时处理则应该如下:
看起来相当简单。
public class IfThen : ControlFlow { public Expression.ExpressionNode Condition; public Block ThenClause { get { return Children.Count > 0 ? Children.First() as Block: null; } } public Block ElseClause { get { return Children.Count > 1 ? Children.Last() as Block: null; } }
运行时处理则应该如下:
public override void Run(Context ctx) { Debug.WriteLine("if(" + Condition.ToString() + ")"); Expression.Operand.Operand condVal = Condition.Evaluate(this); Debug.WriteLine("Condition=" + condVal.GetValue(this).ToString()); if (condVal.GetValue(this).AsInt != 0) { if (ThenClause != null) { Debug.WriteLine("Then"); ThenClause.Run(this); } } else { if (ElseClause != null) { Debug.WriteLine("Else"); ElseClause.Run(this); } } }
看起来相当简单。
相关文章推荐
- C语言解释器-10 控制结构之循环
- 黑马程序员------C语言-----流程控制(选择结构:if,switch)
- C语言解释器-11 控制结构之switch
- C语言解释器-12 控制结构之break、continue和return
- C语言:控制结构与流程图
- 70个shell常用操作、 shell编程控制结构:expr、let、for、while、until、shift、if、case、break、continue、函数、select
- 【C语言简单说】八:分支结构之if...else if()...else...(3)
- 循环控制结构程序04 - 零基础入门学习C语言19
- 大话C语言——优化结构控制(二)
- ios开发-c语言之流程控制中if的学习
- C语言学习十一流程控制的学习之循环结构学习
- java中的控制结构(if,循环)
- 流程控制语句————If选择结构语句
- Oracle:PL/SQL--流程控制(一)——条件结构:if-then、if-then-else、if-then-elsif
- php $smarty 模板的控制结构 if-elseif-else
- C语言技术视频-02-程序分支结构(if...else) 解说
- 循环控制结构程序05 - 零基础入门学习C语言20
- Go语言-控制结构 (if,switch,for,goto)
- Linux Shell 之 Shell 基本控制结构(一)(if and case)
- C语言初步-第22讲:控制结构与流程图(体重监测器)