首页 > 其他分享 >C语言基础6分支结构

C语言基础6分支结构

时间:2024-08-03 16:53:58浏览次数:9  
标签:语句 case C语言 运算符 break 分支 表达式 结构

分支结构

分支结构:又被称之为选择结构

概念

选择结构:根据条件成立与否,选择相应的操作

条件建构

  • 关系表达式:含有关系运算符的表达式(<,>,>=,<=,!=,==)
  • 逻辑表达式:含有逻辑运算符的表达式(&&,||,!),往往用来构建复杂的符合条件:

比如:

  • 常量/变量:值是否非0,取值(0|1)

注意:类似以下写法,没有意义

if(x+y)//编译通过,但没有实际意义,不建议这样写

选择结构的形式

单分支

语法:

if(条件表达式)
{
    语句1;
}

说明:条件表达式成立,执行语句一,否则跳过该分支结构

例子:

双分支

语法:

if(条件表达式)
{
    语句1;
}
else
{
    语句2;
}

说明:条件表达式成立,执行语句1,否则执行语句2。双分支不管条件是否满足,都要执行。

例子:

三目运算符

语法:

表达式1 ? 表达式2 : 表达式3;

说明:?:  条件运算符,主要可以简化双分支为同一变量赋值的操作。

求值过程:

先计算 表达式 1 的值,非 0 ,则将 表达式 2 的结果作为条件运算符的最终结果;否则将 表达 式 3 的结果作为 条件运算符 的 最终结果 。 举例

多分支

语法:

if(条件1) 
{ 
    语句1;
 } else if(条件2) 
{ 
        语句2;
 }
... 
else
 {
    语句n+1;
 } 

举例:

swith

语法:

switch(表达式) // 不能是布尔型和 浮点型 
{ 
    case 常量表达式1: 
        语句体1; 
        break;
     case 常量表达式2: 
        语句体2; 
        break;
          ...
     case 常量表达式n: 
        语句体n; 
        break;
    default:
        语句体n+1; 
        break;
}

说明:

⑴ switch 后括号内的表达式可以是任何类型的表达式; ⑵ 若表达式的值与某个常量表达式的值相等时,执行此 case 后面的语句;若没有相等的值时,执行 default后面的语句; ⑶ 每个 case 后面的常量表达式的值都必须不相同,否则出现矛盾; ⑷ 各个 case 和 default 出现的次序不影响执行结果; ⑸ case 后面的语句中如果没有 break 语句,则执行完本 case 后的语句会接着执行下面的 case ( case 穿透) ; ⑹ 多个 case 可共用一组语句。 注意: 1. 表达式一般写一个变量,变量的值是一个确定的常量。 2. 当遇到 break 或者 switch 语句的右大括号时, switch 语句结束。 3. 表达式中的数据类型: char , short , int , long , long long ,不能是浮点型。 表达式和常量的数据类型要一致(支持隐式转换),比较是否相同 举例: switch 语句的 case 穿透: 1. case 穿透:当 case 后的 break 被省略;就会直接执行它后面紧跟的 case 中的语句(不会判断表达式是否和它后面的case 常量是否相同),这样的现象称之为 case 穿透。 2. default 语句一般放在所有 case 之后,表明所有的 case 都不成立时,执行 default 中的语句; default 语句可以放在switch 语句 {} 内的任意位置。

总结

如果只需要一个判断结果,使用 单分支 如果需要两个判断结果,且只能有两个判断结果,使用 双分支 如果需要判断 N 个结果中的某几个,或者所有,使用 多分支

条件表达式中的运算符优先级

逻辑非(!) > 算数运算符 ( +-*/% ) > 关系运算符( > < >= <= != == ) > 逻辑运算符( && 、 || ) > 赋值运算符(= 、 += )

标签:语句,case,C语言,运算符,break,分支,表达式,结构
From: https://blog.csdn.net/m0_69147706/article/details/140763253

相关文章

  • C语言运算符优先级口诀
    口诀内容(优先级自上而下递减;由逗号分隔的,优先级自左到右递减。)圆方括号,箭头句号。单目增减非反负,针强址长,从右。乘除求模,加减,位移,大小,等不等。位与异或,逻辑与或。条件赋值均右。真逗。解释(斜体字是补全;加粗字是对整行的说明;代码块即是所对应操作符。)圆括号()方括号[]......
  • 函数名冲突导致的C语言“conflicting types”编译错误
    快速解答:啊,看来你也遇到了“conflictingtypes”——类型冲突编译错误。如果你不是遇到:循环引用而没有用宏定义来解决。声明或定义在调用后面。声明和定义冲突。.h.gch未更新。那么我想告诉你,你可跟我一样忘了C语言不支持“函数重载”,即你的函数名不能重复。所......
  • C语言运算符优先级口诀
    口诀内容(优先级自上而下递减;由逗号分隔的,优先级自左到右递减。)圆方括号,箭头句号。单目增减非反负,针强址长,从右。乘除求模,加减,位移,大小,等不等。位与异或,逻辑与或。条件赋值均右。真逗。解释(斜体字是补全;加粗字是对整行的说明;代码块即是所对应操作符。)圆括号()方括号[]......
  • 一天速通顺序结构(0基础,软件“Dev-c++”需自己下载)
    今天浅浅带大家速通顺序结构,话不多说,上干货!1,cout语句我们都知道,任何程序都会用到输出,那该怎么实现输出呢,代码实现:#include<iostream>usingnamespacestd;intmain(){cout<<"字符串";cout<<endl;return0;}其中"#include<iostream>"是头文件,起到声明输入输出......
  • 数据结构-------------------二叉排序树的查找
    #include<stdio.h>#include<stdlib.h>typedefstructBSTNode{intkey;structBSTNode*lchild;structBSTNode*rchild;}BSTNode,*BSTTree;//递归实现二叉排序树的查找操作BSTNode*BSTSearch(BSTTreeT,intkey){if(T......
  • JVM内存结构划分
    JVM内存结构的划分1.堆就相当于当你new一个对象的时候,就会分配一个堆内存给你,当对象销毁时就会有垃圾回收机制来回收这个对象的堆空间。2.栈就好比一串珠子,你只能从一头加或者取,要取后面的就要把前面的取出来才可以。3.堆内存作用就是用来存放java中的对象和数组,当new一个......
  • Linux系统目录结构
    最顶层为跟目录(/)-Unix/Linux的基本哲学理念:一切皆文件-倒挂的树形结构目录说明/处于Linux文件系统树形结构的最顶端,它是Linux文件系统的入口。所有的目录、文件、设备都在/之下,它是Linux文件系统最顶层的唯一的目录;一般建议在根目录下面只有目录,不要直接存放文件;/bin......
  • 1-1 初识C语言
    初识C语言:C语言主要特点:有32个关键字,9种控制语句,34种运算符;数据类型有:整形,浮点型,字符型,数组类型,指针类型,结构体类型,共用体类型等,能实现各种复杂的数据结构(如链表,树,栈等)的运算,尤其是指针类型数据,使用十分灵活;具有结构化的控制语句(如if•••else语句.whil......
  • 数据结构--------二叉树的定义及遍历操作的实现
    /*二叉树的链式存储以及基本操作*/#include<stdio.h>#include<stdlib.h>//树的节点typedefstructBTNode{intdata;structBTNode*lchild;structBTNode*rchild;}BTNode,*BTTree;/......
  • 【C语言】详解feof函数和ferror函数
    文章目录前言1.feof1.1feof函数原型1.2正确利用函数特性读写文件1.2.1针对文本文件1.2.2针对二进制文件1.3feof函数实例演示2.ferror2.1ferror函数原型前言或许我们曾在网络上看过有关于feof函数,都说这个函数是检查文件是否已经读取结束了。但事实却并非......