C语言流程控制

1、顺序结构

     分支结构

     循环结构

分支结构:

在C语言中,分支结构是一种控制程序执行流程的重要机制。它允许程序根据条件判断的结果,选择执行不同的代码块。C语言中主要有两种分支结构:if语句和switch语句。

逻辑运算

在C语言中,逻辑运算用于执行布尔逻辑操作。C语言提供了三种基本的逻辑运算符:逻辑与(&&)、逻辑或(||)和逻辑非(!)。

  逻辑与(&&):只有当两个操作数都为真(非零)时,逻辑与的结果才为真。

 

 

  逻辑或(||):只要两个操作数中有一个为真(非零),逻辑或的结果就为真。

  逻辑非(!):逻辑非将操作数的布尔值取反。如果操作数为真,则结果为假;如果操作数为假,则结果为真。

 

算数运算

算术运算符包括:

  • 加法运算符(+)
  • 减法运算符(-)
  • 乘法运算符(*)
  • 除法运算符(/)
  • 取模运算符(%)
  • 自增运算符(++)
  • 自减运算符(--)

关系运算符包括:

  • 大于运算符(>)
  • 大于等于运算符(>=)
  • 小于运算符(<)
  • 小于等于运算符(<=)
  • 等于运算符(==)
  • 不等于运算符(!=或<>)

运算优先级  

算术>关系运算>逻辑运算> 赋值>逗号

在C语言中,运算符的优先级和结合性决定了表达式中操作数的计算顺序。以下是C语言中的优先级和结合性的一般规则:

  1. 括号(Parentheses):括号内的表达式具有最高优先级。例如:(a+b)*c
  2. 一元运算符:例如 +-! 等。这些运算符比乘除和加减运算优先级高。
  3. 乘法、除法和取模:这些运算符的优先级高于加法和减法。例如:a*b+c 先计算 a*b,然后再加上 c
  4. 加法和减法:这些运算符的优先级相同。例如:a+b-c 先计算 a+b,然后再减去 c
  5. 关系运算符:例如 >, <, >=, <=, ==, !=。这些运算符的优先级低于算数运算符。例如:在表达式 a < b && b > c 中,首先比较 ab,然后再与 b > c 的结果进行逻辑与运算。
  6. 逻辑运算符:例如 &&(逻辑与)和 ||(逻辑或)。这些运算符的优先级低于关系运算符。例如:在表达式 a < b || b == c 中,首先比较 ab,然后再与 b == c 的结果进行逻辑或运算。
  7. 赋值运算符:例如 =+=-= 等。这些运算符的优先级低于逻辑运算符。
  8. 逗号:逗号运算符在所有其他运算符中具有最低的优先级。它用于在一行中分隔多个表达式,并从左到右依次执行这些表达式。

if语句

if (条件表达式) {  
    // 如果条件表达式为真(非0),则执行这里的代码  
} else {  
    // 如果条件表达式为假(0),则执行这里的代码(可选部分)  
}

其中,条件表达式是一个返回布尔值的表达式,用于判断程序应该执行哪个代码块。如果条件表达式的值为真(非0),则执行if语句后面的代码块;否则,如果提供了else部分,就执行else后面的代码块。

if的多分支语句

多分支语句

if (表达式1) //注意: 不能加分号
{
   语句1
}else if (表达式2) //注意: 不能加分号
{
   语句2;
}else if (表达式3)//注意: 不能加分号
{
   语句3;
}else if (表达式n)//注意: 不能加分号
{
   
}else
{
 
}

判断 "表达式1"
真 执行 "语句1"   语句1 执行完,表示if语句结束,程序继续往下

   判断"表达式2"
   真 执行 "语句2"   语句2 执行完,表示if语句结束,程序继续往下
   假
       判断"表达式3"
       真 执行 "语句3"   语句3 执行完,表示if语句结束,程序继续往下
       假
         ...
         判断"表达式n"
         真 执行 "语句n"   语句n 执行完,表示if语句结束,程序继续往下
         假  
            执行 else后面语句 ,执行完,程序继续往下。

注意:
   1.不存在单独的else语句 ,else出现一定有一个if与之对应
   2.else 与 if匹配规则
     一定从最里面开始匹配
     else 与 最近 前面一个if匹配

switch语句

switch  //多分支的情况
switch(表达式) //整型表达式
{
    case 常量表达式:  //1+b
         语句;
         break;
    case 常量表达式:
         语句;
         break;
    case 常量表达式:
         语句;
         break;
     default: //默认
         语句;
         break;
}

含义:
  求解 "表达式"
  根据 结果 ,匹配 下面case后面的值
  匹配上后,
  则执行对应case下的语句 ,
  直到遇到了break 或者是switch 右} (花括号)  

注意:
  1.switch 后表达式 需要是一个 整型表达式
  2.case后面是,常量表达式,不能出现变量

条件表达式 ? 表达式1 : 表达式2

如果“条件表达式”为真(非0),则整个表达式的值为“表达式1”的值;否则,整个表达式的值为“表达式2”的值。

例如:

int a = 5;  
int b = 10;  

int max = (a > b) ? a : b;

在上面的代码中,我们检查 a 是否大于 b。如果是,max 的值将是 a;否则,max 的值将是 b。由于 a(5)不大于 b(10),所以 max 的值将是 b,即10。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值