TC官方合作论坛

标题: TC 如果语句 第八章 [打印本页]

作者: 诚诚    时间: 2012-5-31 10:27
标题: TC 如果语句 第八章
第八章 TC 如果语句
8.1 如果语句
  如果语句,也就是 如果 语句,用如果语句可以构成分支结构.它根据给定的条件进行判断,以决定执行某个分支程序段.TC语言的如果语句有两种基本形式,并且每个如果语句的结尾都要有一个 如果结束。
  (注:关键字中英文对应关系,如果 - if,否则 - else,如果结束 - endif)
  如果语句的两种形式

[attach]3597[/attach]

8.1.1 第一种形式为基本形式:如果 ()
  如果(表达式)
     //语句
  如果结束
  其语义是:如果表达式的值为真,则执行其后的语句,否则不执行该语句。其过程可表示为下面例子。
  1. 功能 逻辑型 测试()
  2. 整型 a=1,b=2,max
  3. max=a
  4. 如果(a>b)
  5. max=b
  6. 如果结束
  7. 返回 真
  8. 功能结束
复制代码

  本例程序中,输入两个数a,b.把a先赋予变量max,再用if语句判别max和b的大小,如max小于b,则把b赋予max.因此max中总是最大的那个数,最后输出max的值。
8.1.2 第二种形式为: 如果-否则
  如果-否则 也是属于同一个分支,所以否则结束后面一定要加上如果结束来结束如果语句。
  如果(表达式)     
    语句1   
  否则
     语句2
  如果结束
其语义是:如果表达式的值为真,则执行语句1,否则执行语句2 。其执行过程可表示为下面例子。
  1. 功能 逻辑型 测试()
  2. 整型 a=1,b=2,max
  3. max=a
  4. 如果(a>b)
  5.       max=a
  6. 否则         
  7.       max=b  
  8. 如果结束
  9. 返回 真
  10. 功能结束
复制代码
  改用如果-否则 语句判别a,b的大小,若a大,则max等于a,否则max等于b。

8.1.3 如果语句的嵌套
  如果语句的嵌套
  当如果语句中的执行语句又是如果语句时,则构成了如果 语句嵌套的情形。
  其一般形式可表示如下:
  如果 (表达式)
  如果结束
  如果 (表达式)
  如果结束
  或者为
  如果 (表达式)  
     如果语句
     如果结束   
  否则
     如果语句
     如果结束
   如果结束
在嵌套内的如果语句可能又是如果-否则型的,这将会出现多个如果和多个否则重叠的情况,这时要特别注意如果和否则的配对问题,而且还要匹配好如果结束来结束相应的如果语句。
例如:
如果(表达式1)
  如果 (表达式2)
      语句1
  否则
  如果结束
如果结束
语句2
其中的否则究竟是与哪一个如果配对呢?
应该理解为:
如果 (表达式1)
  如果  (表达式2)
     语句1
     否则
     语句2
  如果结束
如果结束
为了避免这种二义性,TC语言规定,否则总是与它前面最近的如果和如果结束 配对,因此对上述例子应按前一种情况理解。
下面我们综合举个例子:
[例]



  1. 功能 逻辑型 测试(逻辑型 a,整型 b,整型 c,整型 max)
  2. 如果(a)
  3.    如果(b>c)
  4.        max=b
  5.    否则
  6.        max=c
  7.    如果结束
  8. 否则
  9.    如果(b<c)
  10.        max=b
  11.    否则
  12.       max=c
  13.    如果结束
  14. 如果结束
  15. 返回 真
  16. 功能结束
复制代码
  改用如果-否则语句判别a为真的时候, b大于c, max等于b, 否则max等于c。 如果a为假的时候, b小于c, max=b, 否则max=c。



对于运算符以及运算表达式不熟悉的,可以回顾以下内容:
第五章,TC的算术运算符和算术表达式  http://bbs.tyuyan.com/thread-12786-1-1.html
第六章,TC的关系运算符和表达式     http://bbs.tyuyan.com/thread-12813-1-1.html

对流程语句不熟悉了的同学,可以回顾前面的内容:
第七章,TC的过程化程序设计  http://bbs.tyuyan.com/thread-12842-1-1.html

理解了本课的同学,那么继续学习流程语句的各个内容吧!
第九章,TC的选择(select)语句  http://bbs.tyuyan.com/thread-12816-1-1.html
第十章,TC的循环(while,repeat)语句  http://bbs.tyuyan.com/thread-12818-1-1.html


作者: 花开花落    时间: 2012-5-31 10:30
沙发。。
作者: 战地之王    时间: 2012-5-31 10:30
沙发。。
作者: lt729541702    时间: 2012-5-31 10:50
:动作真快
作者: lt729541702    时间: 2012-5-31 10:51
楼猪  给我们来个刷RMB的嘛
作者: 落叶归根    时间: 2012-5-31 11:04
给力的说。学习了。
作者: 战斗之神    时间: 2012-5-31 11:05
很详细。 学习了。
作者: fellmuss    时间: 2012-6-1 10:41
好绕啊,,,绕来绕去。。
作者: scyx12345    时间: 2012-6-18 13:45
回复 1楼诚诚的帖子

shafa...
作者: 968    时间: 2012-6-26 07:33
菜鸟,飞呀飞@~~
作者: smallno    时间: 2012-7-17 15:28
没elseif!!!?????
作者: myismaln    时间: 2012-8-16 18:15
正在学习中
作者: zzqtkj    时间: 2012-8-20 14:50
中文语法真让人崩溃啊
作者: wakaji    时间: 2012-8-21 08:33
学习了
作者: ttbbshops    时间: 2012-8-21 09:45
回复
作者: ttbbshops    时间: 2012-8-21 09:45
呃呃呃
作者: scj2zxy    时间: 2012-8-21 16:46
学习!
作者: 175390926    时间: 2012-11-16 22:54
小白签到!
作者: 钱多多    时间: 2012-12-9 19:28
中文编程感觉有点麻烦,直接 if esle 多简单,
作者: 二货你好    时间: 2012-12-25 12:09
直到现在,我还留着我们聊天的窗口,即使没有发送消息过来,还是会在屏幕下方看到窗口,会在Q上对你设置隐身对其上线和好友上线提醒,只要你一上线我就迫不及待和你一同调侃。

  我们会斗谁写字快,斗谁打字快,到最后都不分上下。那个时候你,是不是和我一样嗤笑一声无所谓?

  我没了你,我就是安静的自己。你没了我,也是不会发癫的你吧?

  姐妹你,要怎么样才能将你从我心白癜风治疗要花多少钱上拔起,很难很难,对吧?你不是温柔的,我不是体贴的,一样没有什么了不起的优点却缺点一堆,那样像似自己的你,又要怎么忘却?

  你告诉我,那份让人嫉妒羡慕的友谊情感,那份互相珍惜的三年友情,该怎么慢慢退出,适应生活,依靠自己……
作者: 简单软件    时间: 2013-1-25 19:36
真是受用啊!
作者: btbcagf    时间: 2013-2-5 15:01
学不会啊。。
作者: laowantong    时间: 2013-3-1 22:33
谢谢
作者: lanjunlj    时间: 2013-4-16 12:42
懂了点
作者: 474337264    时间: 2013-4-20 09:33
沙发
作者: 1693687339    时间: 2013-6-23 16:12
回复 1楼诚诚的帖子

AAAAaaa
作者: slz336    时间: 2014-8-26 13:50
好好~~谢谢啊,我是刚来的~辛苦了
作者: sxmgming    时间: 2015-12-29 23:06
为什么我觉得第一个例子括号里应该是小于号呢
作者: ybug    时间: 2017-8-27 11:57
进度条设置进度("进度条0",10)
//进度的值不能小于0和大于99





欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1