首页 > 其他分享 >分支和循环

分支和循环

时间:2025-01-15 20:28:56浏览次数:3  
标签:语句 循环体 while 循环 printf 表达式 分支

引言

c语言有三个结构,包括:顺序结构,循环结构,选择结构。if、switch实现分支结构,for、whlie、do whlie实现循环结构。

1. if语句

基本概念

-if 语句是一种条件控制语句,用于根据给定条件的真假来决定是否执行某段代码。它允许程序根据不同的情况做出不同的反应,这在实现逻辑判断和流程控制方面非常重要。

if语句的语法

if (表达式)
    语句

例如:

int num = 10;
if (num > 5) {
    printf("这个数大于5\n");
}

if-else形式

当我们判断一个数是奇数还是偶数的时候就用到了if-else语句。

例如:

#include <stdio.h>
int main() {
    int num;
    printf("请输入一个整数: ");
    scanf("%d", &num);
    if (num % 2 == 0) {
        printf("%d 是偶数\n", num);
    } else {
        printf("%d 是奇数\n", num);
    }
    return 0;
}

if和else默认情况下都只控制一条语句。

例如:

上述代码对比可以看出俩个输出都把“可以谈恋爱”输出,因为 if 语句只能控制⼀条语句,就是 printf(" 成年了 \n"); if语句为真,则打印成年了if语句为假,则不打印,对于 printf(" 可以谈恋爱了 \n"); 是独⽴存在的,不管if语句的条件的真 假都会被执⾏。

当我们需要if和else控制俩条以上的时候需要加{ }。

例如:

在if-else语句中,else 可以与另⼀个 if 语句连⽤,构成多重判断。

例如:

如果有多个 if 和 else ,可以记住这样⼀条规则, else 总是跟最接近的 if 匹配

例如:

上来判断a>5吗?发现a<5,那就进行else,自以为会打印“只有前俩个条件满足”,实际上上面什么都不打印。原因就在于:else 总是跟最接近的 if 匹配

2. 关系操作符

C语⾔⽤于⽐较的表达式,称为“关系表达式”(relationalexpression)⾥⾯使⽤的运算符就称为“关系运算符”(relationaloperator),主要有下⾯6个。

• > ⼤于运算符

• < ⼩于运算符

• >= ⼤于等于运算符

• <= ⼩于等于运算符

• == 相等运算符

• != 不相等运算符

3. 条件操作符

条件操作符也叫三⽬操作符,需要接受三个操作数的。其语法形式是“条件表达式? 表达式1 : 表达式2”。意思是先对条件表达式进行判断,如果它的值为真(在C系语言中非0即为真),就返回表达式1的值;如果条件表达式的值为假(0),就返回表达式2的值。

例如:

4. 逻辑操作符:&&,||,!

逻辑运算符提供逻辑判断功能,逻辑操作符主要用于对布尔值(真或假)进行运算。
 
逻辑与(&&):当使用“&&”连接两个条件时,只有两个条件都为真,整个表达式才为真。例如在编程语言中,“if (a > 1 && b < 12)”,只有a大于1且b小于12同时成立,if语句中的条件才为真。

例如:


 
逻辑或(||):用“||”连接两个条件,只要其中一个条件为真,整个表达式就为真。如“if (x == 5 || x == 3)”,当x等于5或者x等于3时,if语句的条件为真。


 
逻辑非(!):用来对一个布尔值取反。如果原来是真,经过“!”操作后就为假;原来是假,经过“!”操作后就为真。例如“if (!(a > 10))”,如果a大于10为假,那么整个条件就为真。

一个小练习:如何判断是闰年?

注:闰年判断的规则1. 能被4整除并且不能被100整除是闰年

                                  2. 能被400整除是闰年

5. switch语句

switch 语句是⼀种特殊形式的 的 el if...else 结构,⽤于判断条件有多个结果的情况。它把多重 se if 改成更易⽤、可读性更好的形式。

 switch (expression) {
 case value1: statement
 case value2: statement
 default: statement
 }

例如:

int main() {
    int day=0;
    printf("请输入数字(1-7):");
    scanf("%d", &day);
    switch (day) {
    case 1:
        printf("星期一");
        break;
    case 2:
        printf("星期二");
        break;
    case 3:
        printf("星期三");
        break;
    case 4:
        printf("星期四");
        break;
    case 5:
        printf("星期五");
        break;
    case 6:
        printf("星期六");
        break;
    case 7:
        printf("星期日");
        break;
    default:
        printf("输入错误");
        break;
    }
    return 0;
}

运行结果:

 注: • switch 后的 expression 必须是整型表达式

          • case 后的值,必须是整形常量表达式

6. while循环

在C语言中, while 语句是一种循环结构。
它的基本语法是 while(条件表达式) {

                                           循环体语句; 

                              } 

当条件表达式的值为真(非0)时,就会执行循环体语句;执行完循环体后,会再次判断条件表达式,若还是为真就继续执行循环体,直到条件表达式的值为假(0),此时循环结束。

例如:

7. for循环

在C语言中, for 循环是一种功能强大且常用的循环结构。
它的基本语法是 for(初始化表达式; 条件表达式; 更新表达式) {

                                               循环体语句;

        } 
- 初始化表达式:在循环开始前执行一次,通常用于初始化循环变量,比如 int i = 0; 。
- 条件表达式:用于判断循环是否继续执行,只要这个表达式的值为真(非0),循环就会继续,例如 i < 10 。
- 更新表达式:在每次循环体执行完后执行,一般用于更新循环变量的值,像 i++ 。

例子:

注:在C语言中, i++ 和 ++i 都用于给变量 i 加1,但它们有一些区别。
 i++ 是后置自增运算符。它先返回 i 的值,然后再将 i 的值加1。

例如:

int i = 5;
int a = i++;
// 执行后,a的值为5,i的值为6
 

++i 是前置自增运算符。它先将 i 的值加1,然后返回更新后 i 的值。

例如:

int i = 5;
int b = ++i;// 执行后,b的值为6,i的值为6

8. do-while循环

在C语言中, do - while 语句也是一种循环结构。
它的语法格式是 

     do {

                              循环体语句

                                 } while(条件表达式); 

和 while 语句、 for 语句不同的是, do - while 循环是先执行一次循环体,然后再判断条件表达式是否为真。如果条件表达式为真,就继续执行循环体;如果为假,循环结束。

例如:

9. break和continue语句

在C语言中, break 和 continue 语句都用于控制循环的流程。
 break 语句用于跳出当前循环结构( for 循环、 while 循环、 do - while 循环)或者 switch 语句。当 break 语句在循环体中被执行时,循环会立即终止,程序将继续执行循环后面的语句。

例如:

continue 语句用于跳过当前循环体中剩余的语句,然后直接进入下一次循环的条件判断。

例如:

10. 循环的嵌套

循环嵌套是指在一个循环内部包含另一个循环。
最常见的是在 for 循环中嵌套 for 循环,或者 while 循环中嵌套 while 循环等多种组合形式。

例如,使用 for 循环嵌套来打印九九乘法表:

#include <stdio.h>
int main() {
    for (int i = 1; i <= 9; i++) {
        for (int j = 1; j <= i; j++) {
            printf("%d×%d=%d\t", j, i, i * j);
        }
        printf("\n");
    }
    return 0;
}

循环嵌套执行时,外层循环每执行一次,内层循环会完整地执行一遍它的循环周期。要注意合理设计循环条件和循环体内容,避免出现无限循环等错误。

运行结果:

11. goto语句

在C语言中, goto 语句是一种无条件跳转语句。
它的语法是 goto 标签; ,这里的标签是一个自定义的标识符,用于标记代码中的一个位置。标签的定义方式是在标识符后面加上冒号,如 label: 。
 
例如

在这个例子中,程序先打印变量 i 的值,然后 i 自增。接着判断 i 是否小于等于5,如果是就跳转到 loop 标签处,再次执行打印和自增的操作。这样就实现了循环输出1到5的功能。
不过, goto 语句如果使用不当,会使程序的流程难以理解和跟踪,导致代码的可读性和可维护性变差。所以在大多数情况下,应该谨慎使用 goto 语句,优先考虑使用 for 、 while 、do - while 等循环结构。

标签:语句,循环体,while,循环,printf,表达式,分支
From: https://blog.csdn.net/2402_86400467/article/details/145147848

相关文章

  • 【C语言分支和循环练习题】
    分支和循环练习1.打印1-100之间的所有素数2.随机数的生成:生成100-200之间的随机数1.打印1-100之间的所有素数#include<stdio.h>#include<math.h>intmain(){ inti=0; for(i=101;i<=200;i+=2) { intflag=1;//假设i是素数 intj=0; for(......
  • 静态分析在分支开发主干发布模式下的应用
    静态分析在分支开发主干发布模式下的应用在采用分支开发主干发布模式的项目中,静态分析可以有效地确保每次合并到主干的代码质量。以下是具体的操作步骤和措施,确保变更请求经过审批,并在审批过程中检查静态分析的结果。1.配置管理工具和静态分析工具的集成目标确保静态分......
  • 【Javascript Day6】for循环练习及数组
    目录for循环练习数组1.构造数组2.字面量数组创建3.数组的遍历循环4.length的使用规则for循环练习按输入弹窗行数画菱形(奇偶皆可)varpro=prompt("请输入行数")varsum="";for(vari=1;i<=pro;i++){if(i<=parseInt((pro*1+1)/2)......
  • 你对事件循环有了解吗?说说看!
    当然,事件循环(EventLoop)是前端开发中一个非常重要的概念,尤其是在处理异步操作时。事件循环是JavaScript运行时环境(如Node.js或浏览器环境)中的一部分,负责执行和管理异步任务。以下是关于事件循环的一些关键点:单线程执行:JavaScript是单线程的,这意味着它一次只能执行一个任......
  • C语言初阶习题(2分支语句和循环语句-for)【10】杨辉三角
    1.题目描述——在屏幕上打印杨辉三角。2.思路第一步先尝试打印下三角第二步,分析他们之间的关系3.代码实现#define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>intmain(){ intn=0; scanf("%d",&n); intarr[100][100]={0}; inti=0; in......
  • 高级java每日一道面试题-2025年01月13日-框架篇[Spring篇]-Spring 是怎么解决循环依赖
    如果有遗漏,评论区告诉我进行补充面试官:Spring是怎么解决循环依赖的?我回答:在Java高级面试中,Spring框架如何解决循环依赖是一个重要且常见的问题。以下是对Spring解决循环依赖的详细解释:循环依赖的定义与类型循环依赖是指两个或多个Bean之间互相依赖,形成一个闭环。......
  • C语言-循环结构
    循环结构:重复执行代码1、for循环    循环用于在知道循环次数的情况下使用。三个部分:初始化、条件判断和更新    基本形式:                    嵌套循环:                2、while循环        循环在......
  • 基于 Performace 分析事件循环
    我们是袋鼠云数栈UED团队,致力于打造优秀的一站式数据中台产品。我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值。本文作者:千寻什么是事件循环?我们为什么需要事件循环?对于JavaScript是一门单线程语言我们是肯定的,JavaScript单线程的特性保证了渲染和Java......
  • windows消息循环和linux消息循环的异同
     一、消息循环的基本概念消息循环(MessageLoop)是一种编程结构,用于等待和分派消息。在不同的系统或机制下,消息循环有不同的称呼,如事件循环(EventLoop)或运行循环(RunLoop)。它是经典的消息驱动机制的基础‌。 二、相同点事件驱动机制的核心地位在Linux和Windows中......
  • Python 基础知识 之 选择(分支)结构 + 模式匹配结构(match)
    选择结构按照条件选择执行不同的代码段1.单分支结构if语法结构执行流程:如果表达式的值为True,就执行语句块,如果表达式的值为False,就跳过语句块,继续执行下面的语句⭐注意:⭐⭐⭐表达式后面的冒号;缩进,python中通过缩进来控制程序逻辑示例;#1.判断是否中奖nu......