嵌入式linux(三)三大结构

1、顺序结构

顺序结构是最简单的结构,程序按照代码的书写顺序依次执行每一条语句,没有分支或循环结构。

1.1 &&与||运算

关于在顺序结构中,计算结果的问题:

int main()
{
    int i=2;
    int j=3;
    int k ;
    k = i < 0 && ++j;
    printf("%d\n",j);
}

输出:3

原理:C语言中为了提高程序效率,从左向右计算过程中,如果为真继续算,如果第一步就是0则不会计算后面的内容,就好比0成任何数均为0,不会看后面有什么复杂公式。

k = i < 0 && ++j;中,i<0 判断为假 并且是 与运算(有0则0),因此右侧不再计算,输出3。如果左侧判断为真,则继续计算右侧

2、 选择结构

选择结构允许根据条件选择性地执行不同的代码块。在C语言中,常用的选择结构是if语句

基本使用方法简单叙述一遍,相对注意的点在于switch case中

2.1 if

if (condition) {
    // 如果条件为真执行这里的代码
}

  1. condition:表达式,如果其值为真(非零),则执行if语句块中的代码。
  2. 表达式判断符号:>、<、>=、<=、==(注意不要少=)

2.2 if - else 

if (condition) {
    // 如果条件为真执行这里的代码
} else {
    // 如果条件为假执行这里的代码
}

2.3 if - else if - else  

if (condition1) {
    // 如果条件1为真执行这里的代码
} else if (condition2) {
    // 如果条件2为真执行这里的代码
} else if (condition3) {
    // 如果条件3为真执行这里的代码
} else {
    // 如果以上条件都不满足执行这里的代码
}

2.4 switch case 

switch(expression){
    case constant-expression  :
       statement(s);
       break; /* 可选的 */
    case constant-expression  :
       statement(s);
       break; /* 可选的 */
  
    /* 您可以有任意数量的 case 语句 */
    default : /* 可选的 */
       statement(s);
}
  • case 的 constant-expression 必须与 switch 中的变量具有相同的数据类型,且必须是一个常量或字面量。

  • 当被测试的变量等于 case 中的常量时,case 后跟的语句将被执行,直到遇到 break 语句为止。

  • 当遇到 break 语句时,switch 终止,控制流将跳转到 switch 语句后的下一行。

  • 不是每一个 case 都需要包含 break。如果 case 语句不包含 break,控制流将会 继续 后续的 case,直到遇到 break 为止。

  • 一个 switch 语句可以有一个可选的 default case,出现在 switch 的结尾。default case 可用于在上面所有 case 都不为真时执行一个任务。default case 中的 break 语句不是必需的。

 3、for循环

循环结构允许多次执行相同的代码块,直到某个条件不再满足。在C语言中,常用的循环结构有forwhiledo-while

3.1 do while

先执行一次,判断表达式,为否跳出循环,为1继续执行循环程序

do

        循环体语句

while(表达式);

3.2 for

for ( 表达式1; 表达式2; 表达式3 )
{
   statement(s);
}

值得说的就是表达式3中:++i i++执行效率更高,涉及到内存计算方式,虽然表达的效果是一样的

你可能感兴趣的:(Linux学习,linux,c语言)