分支和循环

目录

操作符

关系操作符

条件操作符

逻辑操作符

分支语句

if语句

switch语句

循环语句 

while循环

for循环

do-while循环

循环的嵌套


操作符

运算符的分类

双目运算符:

这些运算符需要两个操作数来执行操作。

  • 算术运算符:+, -, *, /, %
  • 关系运算符:==, !=, >, <, >=, <=
  • 逻辑运算符:&&, ||
  • 赋值运算符:=, +=, -=, *=, /=, %=, &=, |=, ^=, <<=, >>=
  • 位运算符:&, |, ^, <<, >>

单目运算符:

这些运算符只需要一个操作数来执行操作。

  • 递增和递减运算符:++, --
  • 正负号运算符:+, -
  • 逻辑非运算符:!
  • 位取反运算符:~
  • 取地址运算符:&
  • 间接寻址运算符:*
  • sizeof 运算符:sizeof

三目运算符:

这是C语言中唯一的三目运算符。

  • 条件运算符(三元运算符):condition ? expression1 : expression2

这样的分类有助于理解不同类型的运算符及其在表达式中的使用方式。

关系操作符(属于双目运算符)

        关系运算符,用于关系表达式中。关系表达式时C语言用于比较的表达式。

关系运算符有以下几种:

  1. > 大于运算符
  2. < 小于运算符
  3.  >= 大于等于运算符
  4. <= 小于等于运算符
  5. == 相等运算符
  6. != 不相等运算符

关系表达式的结果一般是0和1,0代表假1代表真 。

看代码示例:

注: 在表达区间的时候比如变量a∈(1,2),不能直接写成1<a<2这是错误的写法.

正确写法需要与逻辑运算符相互配合,下面讲到逻辑操作符的时候会展示正确的写法.

条件操作符(三目运算符)

条件运算符(三元运算符):condition ? expression1 : expression2

文字描述:如果condition为真则输出表达1若为假输出表达式2

代码示例:

逻辑操作符(双目运算符)

在C语言中,常见的逻辑操作符有以下三种:

  1. 逻辑与(&&)

    • 表达式为真(true)的条件是:两个操作数都为真。
    • 如果任何一个操作数为假,则表达式的结果为假。
  2. 逻辑或(||)

    • 表达式为真(true)的条件是:至少有一个操作数为真。
    • 如果两个操作数都为假,则表达式的结果为假。
  3. 逻辑非(!)

    • 用于反转操作数的逻辑值,即如果操作数为真,则结果为假;如果操作数为假,则结果为真。

逻辑操作符通常与条件语句(如if语句和while循环)一起使用,以便根据不同的逻辑条件执行相应的代码块。它们也可以用于构建更复杂的逻辑表达式。

代码示例:

分支语句

C语言是一门结构化的语言。有三种结构分别是顺序结构,选择结构,循环结构。

分支语句和循环语句就是为了实现这种结构的语句.

if语句

if语句是一种条件语句,用于根据指定的条件执行不同的代码块。if语句的基本语法如下:

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

如果condition为真(非零),则会执行if语句后面花括号内的代码块;如果condition为假(0),则跳过这个代码块,继续执行后面的代码。

condition是一个表达式,可以是任何能返回值的表达式,例如关系表达式、逻辑表达式、函数调用等。如果condition的结果为真,则执行if语句后面的代码块,否则跳过。

if语句还可以与else语句一起使用,形成if-else语句,用于在条件为假时执行另外一段代码块。if-else语句的语法如下:

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

 在if-else语句中,如果condition为真,则执行第一个代码块;如果condition为假,则执行else后面的代码块。

除了ifelse外,还可以使用else if来添加更多的条件分支,形成if-else if-else结构。例如:

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

 在if-else if-else结构中,如果condition1为真,则执行第一个代码块;如果condition1为假且condition2为真,则执行第二个代码块;如果以上所有条件都为假,则执行最后一个else后面的代码块。该结构是可以接无限的else if的,进行多次选择判断

if语句是C语言中最基本的控制流程之一,用于根据条件控制程序的执行路径。

代码练习实例:输入一个整数,判断是否为奇数,如果是奇数打印是奇数,否则打印偶数。

switch语句

基本形式:

switch (expression) {
    case constant1:
        // 代码块1
        break;
    case constant2:
        // 代码块2
        break;
    // 可以有更多的case语句
    default:
        // 默认情况下执行的代码块
}

expression是一个表达式,它的值会被与各个case后的常量进行比较。如果某个case的常量值与expression的值相匹配,那么与该case相关联的代码块将被执行。如果没有case的常量值匹配expression的值,那么执行default关联的代码块(如果有);如果没有default,则switch语句结束。

当我们输入1时,我们发现了一个很奇怪的现象,就是该结果把1后面所有的语句都执行了,

这时候我们需要用break对其进行控制. 

case后的常量可以是整数常量、字符常量。一旦一个case被匹配执行,控制流会跳到该case后的代码块,并执行其中的语句,直到遇到break语句或者到达switch语句的结尾。

break语句用于退出switch语句,如果没有break,控制流会继续执行下一个case的代码块,直到遇到break或者switch结束。

default关键字是可选的,用于处理expression的值与任何case都不匹配的情况。

注:用字符常量的时候需要用''单引号。default和case的放置顺序无所谓,但一般建议default放在最后面

循环语句 

循环语句是编程中用于重复执行特定代码块的结构。

while循环

while循环是一种常见的循环结构,它在每次循环迭代之前检查一个条件,只有条件为真时才执行循环体。当条件为假时,循环结束。

以下是while循环的一般语法结构:

while (condition) {
    // 循环体
}

在这个结构中:

  • condition 是一个表达式,用于定义循环是否继续执行的条件。如果条件为真,循环体会被执行,否则循环结束。
  • 循环体是while语句后面花括号中的代码块,包含需要重复执行的语句。

while循环的执行流程如下: 

  1. 首先,计算condition的值。
  2. 如果condition为真,则执行循环体中的代码。
  3. 执行完循环体后,再次计算condition的值。
  4. 如果condition为真,重复执行步骤2和3;如果condition为假,则退出循环,继续执行循环后的代码。

在使用while循环时,需要小心确保循环体内部的代码能够改变循环条件,否则可能导致无限循环。通常,在循环体内会有一些逻辑来更新循环条件,以控制循环的执行。

代码实例:

输入一个正的整数,逆序打印这个整数的每一位
例如:
输入:1234,输出:4 3 2 1
输入:521,输出:1 2 5

 for循环

for循环是一种常见的循环结构,它提供了一种简洁的方式来执行特定次数的循环。for循环通常用于遍历数组或执行已知次数的迭代。

语法结构:

for (表达式1; 表达式2; 表达式3) {
    // 循环体
}

在这个结构中:

  • 表达式2 用于初始化循环控制变量,通常是一个赋值表达式。
  • 表达式2 是一个循环条件,如果为真,则执行循环体,否则循环结束。
  • 表达式3 是在每次循环迭代之后执行的操作,通常用于更新循环控制变量的值。

for循环的执行流程如下:

  1. 执行 表达式1,用于初始化循环控制变量。
  2. 计算表达式2的值。
  3. 如果表达式2为真,则执行循环体中的代码。
  4. 执行完循环体后,执行表达式3,更新循环控制变量的值。
  5. 再次计算表达式2的值。
  6. 如果表达式2为真,重复执行步骤3到5;如果表达式2为假,则退出循环,继续执行循环后的代码。

for循环的优点之一是循环控制变量的作用范围局限于循环内部,这样可以避免循环结束后变量的污染。

代码实例:

用for循环打印1~100

 

do-while循环

do-while循环是一种与while循环类似的循环结构,但它在每次循环迭代之后检查循环条件。这意味着无论条件是否为真,循环体至少会执行一次。

以下是do-while循环的一般语法结构:

do {
    // 循环体
} while (condition);

在这个结构中:

  • do关键字标识循环的开始。
  • 循环体是dowhile之间的代码块,包含需要重复执行的语句。
  • while后面跟着条件表达式,用于判断是否继续执行循环。如果条件为真,则循环继续执行;如果条件为假,则循环结束。

do-while循环的执行流程如下:

  1. 首先,执行循环体中的代码。
  2. 执行完循环体后,计算condition的值。
  3. 如果condition为真,则重复执行步骤1和2;如果condition为假,则退出循环,继续执行循环后的代码。

while循环不同,do-while循环保证循环体至少被执行一次,即使循环条件一开始就为假。这使得do-while循环在某些情况下更加适用,特别是当你需要先执行循环体再判断条件时。

循环的嵌套

循环的嵌套是指在一个循环内部包含另一个循环。通过嵌套循环,可以实现更复杂的控制流和算法逻辑。在C语言中,你可以嵌套任意数量的循环,包括forwhiledo-while循环。

下面用利用循环的嵌套实现一个九九乘法口诀表:

代码示例:

goto语句:

goto语句是C语言中的一种跳转语句,它允许程序直接跳转到代码中的标记(label)处,绕过常规的控制流结构,如循环和条件语句。goto语句的使用被广泛认为是不良编程实践的一部分,因为它可能导致代码结构不清晰,使得程序难以理解和维护。

一般语法结构:

goto label;//label可以是任何表示符



label:

goto语句通常用于跳出嵌套循环中使用

代码实例:

 

        此次分享到此结束,希望对各位有所帮助,若有错误,希望得到大家的斧正!! 

  • 25
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值