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. python3 第二十一章 - 函数式编程之return函数和闭包

    我们来实现一个可变参数的求和.通常情况下,求和的函数是这样定义的: def calc_sum(*args): ax = 0 for n in args: ax = ax + n return ax 但 ...

  2. python3 第二十章 - 函数式编程之Higher-order function(高阶函数)

    什么是高阶函数?把函数作为参数传入或把函数做为结果值返回,这样的函数称为高阶函数,函数式编程就是指这种高度抽象的编程范式.函数式编程的特点: 函数本身可以赋值给变量,赋值后变量为函数: 允许将函数本身 ...

  3. 第一个RESTful API

    一个简单的测试 /** * Created by M.C on 2017/9/8. */ var superagent = require('superagent'); var expect = re ...

  4. Linux普通用户修改owner非本人文件为什么成功

    关键字:错误提示:E45 已设定选项’readonly’(请加!强制执行) Linux对文件和目录有很好的权限管理,但今天遇到一个比较诡异的事情,普通用户对文件权限不可写,但可以强制保存该文件,这样就 ...

  5. 网站静态化处理—web前端优化—上(11)

    网站静态化处理这个系列马上就要结束了,今天我要讲讲本系列最后一个重要的主题web前端优化.在开始谈论本主题之前,我想问大家一个问题,网站静态化处理技术到底是应该归属于web服务端的技术范畴还是应该归属 ...

  6. JS中的算法与数据结构——排序(Sort)(转)

    排序算法(Sort) 引言 我们平时对计算机中存储的数据执行的两种最常见的操作就是排序和查找,对于计算机的排序和查找的研究,自计算机诞生以来就没有停止过.如今又是大数据,云计算的时代,对数据的排序和查 ...

  7. htmlcss渐变及兼容性

    自我总结,欢饮拍砖. <!DOCTYPE HTML> <html lang="en"> <head>      <meta content ...

  8. [C#][Newtonsoft.Json] Newtonsoft.Json 序列化时的一些其它用法

    Newtonsoft.Json 序列化时的一些其它用法 在进行序列化时我们一般会选择使用匿名类型 new { },或者添加一个新类(包含想输出的所有字段).但不可避免的会出现以下情形:如属性值隐藏(敏 ...

  9. 简单的.editconfig文件

    root = true [*] charset = utf-8 indent_style = space indent_size = 2 end_of_line = lf insert_final_n ...

  10. 获取sap登陆用户名的中文描述

    一.业务场景: 当通过MKPF-USNAM查找ADRP-NAME_LAST时,中间缺少一个表,即USR21.否则,MKPF-USNAM不能和ADRP-PERSNUMBER直接对等. 二.解决方法: D ...