ControlFlow  控制流

specify 指定 compound statement 复合语句 cryptic有隐含意义的 ambiguity歧义 robust稳健 disintegration解体 sparingly节制 algorithm演算法 appropriate适合的适当的 iteration循环 nontrival非平凡的 重大的 dogmatic教条 武断

1复合语句(分程序)语法上等价于单个语句  分程序最右边的}不用加分号

2else在ifelse语句中可以缺省  但是嵌套中会与最近的if 匹配 如果不希望这样 最好加上花括号 (C PRIM PLUS 里面提到 else;加上可以微微提高程序效率,同时在多重elseif语句中 可以用最后个else来检查错误)

if ( n >= 0 )
  for ( i = 0; i < n; i++ )
  if ( s[i] > 0) {
    printf ( "…" );   //注意这里也要加分号
    return i;
  }
else /* 错 */
printf ( "error -- n is negative\n" );     比如这坨 缩进看起来else匹配第一个if  实际上还是匹配第二个if

3switch case ‘常量或者整数表达式’:statement;

                statement;

                break;//立刻exit form the switch  不加的话 switch会继续执行下一个语句 return也可以结束  同样 break也可以结束while for do的循环

4不添加break可以让程序执行下一个case 但是这个方法不够稳健 程序修改时容易出现错误 我们应当尽量减少这种情况 在必要的情况下 要加上注释 同样d e f a u l t 之后加一个break;也为程序多一道保险

5,运算符 从左到右运算  c=(1+1,2+1) 取右边的值 2+1

6continue用在while for 当中不能用在switch  但是在switch内出现可以控制switch外的循环

7goto 非必要 但是也挺方便的 (CPRIME +我看到一个说这个方法有个缺点 是啥来着=,=) 标签带冒号 覆盖范围是整个函数

goto found;

BLABLABLA

found:

blablabla

用goto的语句

for (i = 0; i < n; i++)
  for (j = 0; j < m; j++)
    if (a[i] == b[j])

    goto found;

/* 没有找到相同元素 */

found:
/* 取一个满足a[i] ==b[j]的元素 */

 不用的语句

found = 0;
for (i = 0; i < n && !found; i++)
  for (j = 0; j < m && !found; j++)
    if (a[i] == b[j])
    found = 1;
if (found)
/* 取一个满足a[i-1] ==b[j-1]的元素 */

else
/* 没有找到相同元素 */

虽然goto容易看懂,也方便维护 但是最好别用 (查了下 大致是说会弄乱程序逻辑和结构  当然你的goto只是向下延伸应该问题不大 这玩意学的时候看到说不要用 自己也没怎么记)

the c programing language 学习过程3的更多相关文章

  1. the c programing language 学习过程8

    glean 捡拾落穗; glean insight 深入了解 modeled模型化 peripheral外围的 himogeneous匀称的 intents 意图  excerpt摘录 intende ...

  2. the c programing language 学习过程7

    interact 互动 carriage运费运输 linefeed 换行 redirection改方向 interleaved交叉存取 adequate足够的 untouched原样的  specif ...

  3. the c programing language 学习过程6

    payroll工资名单 hierarchy分层层次 vexing 使人烦恼的 alignment结盟 semantics 语义 aethetic审美 parameterize 参数化 1结构标记 成员 ...

  4. the c programing language 学习过程5

    lumped 集成总结 mandating托管 consecutively连续地 contiguous临近的 mnemonic记忆力的 mimics 酷似 魔方 bind捆绑 synonym同义词 s ...

  5. the c programing language 学习过程4

    4Functions and Program Structure scratch 刮擦 starting over from scratch从头开始 reside驻留 separately 分别的 f ...

  6. the c programing language 学习过程2

    manipulated 操纵  notations符号 hexadecimal十六进制 precision精度 be concatenated at 把····联系起来 enumerations枚举  ...

  7. 使用一个数组存储一个英文句子"java is an object oriented programing language"

    class fun { public static void main(String[] args) { String str="java is an object oriented pro ...

  8. The python programing language

    Python is an example of high-level language. As you might infer from the name “high-level language”, ...

  9. Linux下C高手成长过程

    建议学习路径:  首先先学学编辑器,vim, emacs什么的都行. 然后学make file文件,只要知道一点就行,这样就可以准备编程序了.  然后看看<C程序设计语言>K&R, ...

随机推荐

  1. SSM与jsp传递实体类

    jsp传controller Controller: @RequestMapping({"/user"}) public void registerUser(User uu) th ...

  2. 新建maven项目,JRE System Library[J2SE-1.5]

    上篇博文中搭建了maven多模块项目,发现全是JRE System Library[J2SE-1.5],如图. 怎么避免这种情况呢? windows-preferences-maven-user se ...

  3. The server's host key is not cached in the registry. You have no guarantee that the server……

    使用putty中的pscp.exe ,可以通过脚本方式实现windows向linux上传文件,但pscp.exe第一次运行时必须手工输入确认信息,本文主要解决掉初次运行时的人工交互,彻底实现静默运行. ...

  4. junit4初体验

    OK,现在我们正式开始junit4系列的整理.前面的junit38作为4的补充知道就好了,实际编码中我们以4为主.这里先来一把junit的初体验,同时也让我们来一步一步的了解下TDD的好处. ORM大 ...

  5. 前端工程构建工具FIS3

    FIS3 是面向前端的工程构建工具.解决前端工程中性能优化.资源加载(异步.同步.按需.预加载.依赖管理.合并.内嵌).模块化开发.自动化工具.开发规范.代码部署等问题. 一.安装 全局安装fis3 ...

  6. mybatis 中文文档

    http://www.mybatis.org/mybatis-3/zh/sqlmap-xml.html

  7. zabbix action理解

    Maintenance status not in maintenance   谷歌翻译:维护状态不在维护中,中文意思就是监控的设备有problem,触发器报警了,然后执行action {TRIGGE ...

  8. html的标签

    <a>:anchor 定义锚 <abbr>:abbreviation 定义缩写 <acronym>: 定义只取消首字母的缩写 <address>:定义地 ...

  9. 浅尝一个排程引擎Optaplanner,前序。

    当码农有10多年了,由建筑行业软件,各种MIS,通用物流定制平台,CCTV客户端(是闭路电视,不是央视喔)啥都做过.最后小试一下创业,不过那都是闹着玩的,不到一年就回到码农的队列,重拾搬砖的行当.近些 ...

  10. JMeter基础教程1:若隐若现的参数化

    1. 什么是参数化? 在开始学习JMeter参数化之前,我们先了解下什么是参数化: 参数化是自动化测试脚本的一种常用技巧.简单来说,参数化的一般用法就是将脚本中的某些输入使用参数来代替,在脚本运行时指 ...