重头开始嵌入式第五天(流程控制)

欧克今天直接进入正题

流程控制主要有三种

顺序,选择,循环,任何一个程序都是这三种构成的
 
1. 顺序结构:程序按照语句的先后顺序依次执行。
2. 选择结构:
 
-  if 语句:根据条件的真假决定执行不同的代码块。
-  if-else 语句:在 if 条件为假时执行 else 后的代码块。
-  if-else if-else 语句:用于处理多个条件的判断。

  1. if语句:if语句用于根据条件的真假来执行不同的代码块。语法如下:
if (条件表达式) {
   // 如果条件为真,执行这里的代码
} else {
   // 如果条件为假,执行这里的代码
}

 

例如:

int a = 10;
if (a > 5) {
   printf("a大于5\n");
} else {
   printf("a小于等于5\n");
}

 

  1. 三元运算符:三元运算符用于根据条件的真假来返回不同的值。语法如下:
条件表达式 ? 表达式1 : 表达式2

 

如果条件表达式为真,则返回表达式1的值;如果条件表达式为假,则返回表达式2的值。 例如:

int a = 10;
int b = (a > 5) ? 1 : 0;
printf("b的值为%d\n", b);

 

如果a大于5,则b的值为1;否则b的值为0。

-switch 语句是 C 语言中的一种条件语句,用于根据不同的条件执行不同的代码块。它的基本语法如下:

switch (expression) {
  case constant1:
    // 代码块1
    break;
  case constant2:
    // 代码块2
    break;
  case constant3:
    // 代码块3
    break;
  default:
    // 默认代码块
}

 

  • expression 是要进行匹配的表达式或变量,必须是整型,而且不能出现变量
  • case 后面跟着的常量值用于匹配 expression 的值。如果匹配成功,则执行相应的代码块。如果匹配失败,程序将继续匹配下一个 case
  • default 是一个可选的语句块,当且仅当所有 case 都不匹配时执行。default:,case:叫做标签,写错了也不会报错
  • break 语句用于退出 switch 语句,防止代码继续执行下面的 casedefault 代码块。

下面是一个例子,演示了 switch 语句的用法:

#include <stdio.h>

int main() {
  char grade = 'B';

  switch (grade) {
    case 'A':
      printf("优秀\n");
      break;
    case 'B':
      printf("良好\n");
      break;
    case 'C':
      printf("及格\n");
      break;
    case 'D':
      printf("不及格\n");
      break;
    default:
      printf("未知成绩\n");
  }

  return 0;
}

 

在这个例子中,根据 grade 的值不同,switch 语句将执行不同的代码块并输出相应的结果。在这种情况下,输出结果为 "良好"。。
3. 循环结构:
 
-  for 循环:通过初始化、条件判断和迭代步长来控制循环次数。
-  while 循环:在条件为真时执行循环体。
-  do-while 循环:先执行一次循环体,然后在条件为真时继续循环。
 
关系运算符和关系表达式

在 C 语言中,关系运算符用于比较两个操作数的关系,常见的关系运算符有:
 
1.  ==  :等于。
2.  !=  :不等于。
3.  >  :大于。
4.  <  :小于。
5.  >=  :大于等于。
6.  <=  :小于等于。
 
关系表达式是由关系运算符连接两个操作数所组成的表达式。关系表达式的结果为逻辑值,即“真”或“假”。在 C 语言中,“真”用非零值表示,“假”用零值表示。
 
例如:

int a = 5, b = 10;

// 以下是关系表达式的示例
int result1 = (a == b);  // 结果为 0(假),因为 a 不等于 b
int result2 = (a < b);   // 结果为 1(真),因为 a 小于 b
int result3 = (a >= b);  // 结果为 0(假),因为 a 不大于等于 b


关系运算符和关系表达式在条件判断和控制流程中起着重要作用.

 

C语言中的逻辑运算符有三种:

  1. 逻辑与运算符(&&):用于判断两个条件是否同时为真,如果两个条件都为真,则返回真,否则返回假。
  2. 逻辑或运算符(||):用于判断两个条件是否至少有一个为真,如果至少有一个条件为真,则返回真,否则返回假。
  3. 逻辑非运算符(!):用于取反一个条件的值,如果条件为真,则返回假,如果条件为假,则返回真。

逻辑表达式是利用逻辑运算符来判断一个或多个条件的真假,从而决定程序的执行路径。在逻辑表达式中,可以使用比较运算符(如==、!=、>、<等)来比较两个值或变量的大小关系。逻辑表达式的结果为真(非零值)或假(零值)。

以下是一些逻辑表达式的例子:

  1. a > 10 && b < 20:判断a是否大于10并且b是否小于20。
  2. x == 0 || y != 0:判断x是否等于0或者y是否不等于0。
  3. !(x > 10):判断x是否不大于10。

在C语言中,逻辑表达式常用于if语句、while循环、for循环等控制结构中,用于判断条件是否成立,从而控制程序的执行流程。

 

1dd20babd1034f94b6bba4814597f37d.png

循环结构

在 C 语言中,循环是一种控制结构,用于重复执行一段代码。常见的循环结构有三种: for 循环、 while 循环和 do-while 循环。

 

 for 循环的一般形式为:

for (初始化表达式; 条件表达式; 更新表达式) {

    // 循环体

}

 while 循环的一般形式为:

while (条件表达式) {

    // 循环体

}

例如:

int i = 0;

while (i < 5) {

    printf("%d ", i);

    i++;

}

在 while 循环中,先判断条件表达式,如果为真则执行循环体,执行完循环体后再次判断条件表达式,直到条件表达式为假时退出循环。

 

 do-while 循环的一般形式为:

do {

    // 循环体

} while (条件表达式);

例如:



int i = 0;

do {

    printf("%d ", i);

    i++;

} while (i < 5);

 do-while 循环与 while 循环的区别在于, do-while 循环先执行一次循环体,然后再判断条件表达式,所以无论条件表达式最初是否为真,循环体至少会执行一次。

 还有一个可以构成循环的语句叫goto

在 C 语言中, goto 语句用于无条件跳转到程序中的指定标签位置。
 
以下是一个简单的示例:
 
c  复制
#include <stdio.h>

int main() {
    int num = 0;

    start:
    if (num < 5) {
        printf("%d ", num);
        num++;
        goto start;
    }

    return 0;
}
 
 
然而,在实际的编程中, goto 语句的使用通常被认为是不好的编程习惯,因为它可能会使程序的逻辑变得混乱和难以理解,导致代码的可读性和可维护性降低。除非在极少数情况下,例如跳出多层嵌套的循环,否则一般不建议使用 goto 语句。
 

 

 

 

 

  • 12
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值