分支与循环(二)

news2025/2/23 19:01:32

目录

1.switch语句

1)switch语法形式

2)if语句和switch语句的对比

3) switch语句中的break

4) switch语句中的default

5) switch语句中的case和default的顺序问题

2.while循环

1) if 和 while的对比

2) while语句的执行流程​编辑

3)while循环的实践

4) 练习

3.for循环

1) for语法形式

         2) for循环的执行流程​编辑

3) for循环的实践

4) while循环和for循环的对比

5) for循环练习


1.switch语句
1)switch语法形式

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

switch (expression) //根据表达式 expression 不同的值,执行相应的 case 分支
                    //如果找不到对应的值,就执行 default 分支
{
    case value1: statement
    case value2: statement
    default: statement
}

注意:

<1> switch 后的 expression 必须是整型表达式
<2>  case 后的值必须是整形常量表达式

2)if语句和switch语句的对比

if语句:

#include <stdio.h>
int main()
{
    int n = 0;
    scanf("%d", &n);
    if(n%3 == 0)
        printf("整除,余数为0\n");
    else if(n%3 == 1)
        printf("余数是1\n");
    else
        printf("余数是2\n");
    return 0;
}

switch语句:

#include <stdio.h>
int main()
{
    int n = 0;
    scanf("%d", &n);
    switch(n%3)
    {
        case 0:
            printf("整除,余数为0\n");
            break;
        case 1:
            printf("余数是1\n");
            break;
        case 2:
            printf("余数是2\n");
            break;
    }
return 0;
}

注意:

<1> case 和后边的数字之间必须有空格

<2> 每一个case 语句中的代码执行完成后需要加上break 才能跳出这个switch语句

3) switch语句中的break

如果去掉case语句中的break

#include <stdio.h>
int main()
{
    int n = 0;
    scanf("%d", &n);// 7
    switch(n%3)
    {
    case 0:
        printf("整除,余数为0\n");
    case 1:
        printf("余数是1\n");
    case 2:
        printf("余数是2\n");//多了一行“余数是2”的打印。
    }
    return 0;
}

只有在switch 语句中使用 break 才能在跳出switch 语句,如果某一个case 语句的后边没有break 语句,代码会继续玩下执行,有可能执行其他case语句中的代码,直到遇到break 语句或者switch 语句结束。就比如上面的代码就执行了case2 中的语句

当然, break 也不是每个case 语句都得有,这就得根据实际情况来看了

#include <stdio.h>
int main()      //1.输入1-5,输出的是“工作日”;
                //2. 输入6-7,输出“休息日”
{
    int day = 0;
    scanf("%d", &day);
    switch(day)
    {
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    printf("工作日\n");
    break;
    case 6:
    case 7:
    printf("休息日\n");
    break;
    }
    return 0;
}

4) switch语句中的default

switch 后的表达式中的值无法匹配代码中的 case 语句的时候,这时候要不就不做处理,要不就得在 switch 语句中加入default 子句

switch (expression) 
{
    case value1: statement
    case value2: statement
    default: statement
}
#include <stdio.h>
int main()
{
    int day = 0;
    scanf("%d", &day);
    switch(day)
    {
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    printf("工作日\n");
    break;
    case 6:
    case 7:
    printf("休息日\n");
    break;
    default:
    printf("输入错误\n");
    break;
    }
return 0;
}
5) switch语句中的case和default的顺序问题

在 switch 语句中 case 语句和 default 语句是没有顺序要求,只要你的顺序满足实际需求就可以

2.while循环
1) if 和 while的对比
if(表达式)
    语句;

while(表达式)
    语句;//如果循环体想包含更多的语句,可以加上大括号
//代码1
#include <stdio.h>
int main()
{
    if(1)
    printf("hehe\n"); //if后边条件满足,打印一次 hehe
    return 0;
}
//代码2
#include <stdio.h>
int main()
{
    while(1)
    printf("hehe\n"); //while后边的条件满足,死循环的打印 hehe
    return 0;
}
2) while语句的执行流程

表达式的值为0,循环直接结束;

表达式的值不为0,则执行循环语句,语句执

行完后再继续判断,是否进行下一次判断

3)while循环的实践
#include <stdio.h>
int main()    //在屏幕上打印1~10的值
{
    int i = 1;
    while(i<=10)
    {
        printf("%d ", i);
        i = i+1;
    }
    return 0;
}
4) 练习

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

题目解析
1. 要想得到n的最低位,可以使用n%10的运算,得到的余数就是最低位,如:1234%10得到4
2. 要想去掉n的最低位,找出倒数第二位,则使用 n=n/10 操作就可以去掉最低位的,如:n=1234/10得到123,123相较于1234就去掉了最低位,123%10就得到倒数第二位3。
3. 循环1和2两个步骤,在n变成0之前,就能到所有的位。

#include <stdio.h>
int main()
{
    int n = 0;
    scanf("%d", &n);
    while(n)
    {
    printf("%d ", n%10);
    n /= 10;
    }
    return 0;
}

3.for循环
1) for语法形式

for(1 表达式1; 表达式2; 表达式3)

        语句;//如果2 循环体想包含更多的语句,可以加上大括号

 

        表达式1 用于循环变量的初始化
        表达式2 用于循环结束条件的判断
        表达式3 用于循环变量的调整

2) for循环的执行流程

首先执行 表达式 1 初始化循环变量,接下来就是执行 表达式2 的判断部分, 表达式2 的结果如果
==0,则循环结束; 表达式2 的结果如果 !=0则执行循环语句,循环语句执行完后再去执行表达式3 调整循环变量,然后再去表达式2 的地方执行判断, 表达式2 的结果是否为 0 决定循环是否继续


整个循环的过程中,表达式1初始化部分只被执行1次,剩下的就是表达式2、循环语句、表达式3在循
环。

3) for循环的实践
#include <stdio.h>
int main()//在屏幕上打印1~10的值
{
    int i = 0;
    for(i=1; i<=10; i++)
    {
    printf("%d ", i);
    }
    return 0;
}
4) while循环和for循环的对比

for 和 while 在实现循环的过程中都有初始化、判断、调整这三个部分,但是for 循环的三个部分非常集中,便于代码的维护,而如果代码较多的时候 while 循环的三个部分就比较分散,所以从形式上 for 循环要更优一些

5) for循环练习

计算1~100之间3的倍数的数字之和

#include <stdio.h>
int main()
{
    int i = 0;
    int sum = 0;
    for(i=1; i<=100; i++)
    {
    if(i % 3 == 0)
    sum += i;
    }
    printf("%d\n", sum);
    return 0;
}

//小小的优化
//如果能直接产生3的倍数的数字就省去了多余的循环和判断
#include <stdio.h>
int main()
{
    int i = 0;
    int sum = 0;
    for(i=3; i<=100; i+=3)
    {
    sum += i;
    }
    printf("%d\n", sum);
    return 0;
}

谢谢观看

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1902347.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux 基础命令、gcc的基础用法

1、ls——>列出目录下的内容 语法&#xff1a;ls [-a -l -h] [Linux路径] &#xff08;1&#xff09;-a -l -h 是可选的选项 &#xff08;2&#xff09;Linux路径是此命令的可选参数 ①当不使用选项和参数&#xff0c;直接使用 ls 命令本体&#xff0c;表示&#xff1a;…

图论·Day01

P3371 P4779 P3371 【模板】单源最短路径&#xff08;弱化版&#xff09; 注意的点&#xff1a; 边有重复&#xff0c;选择最小边&#xff01;对于SPFA算法容易出现重大BUG&#xff0c;没有负权值的边时不要使用&#xff01;&#xff01;&#xff01; 70分代码 朴素板dijsk…

【Web】

1、配仓库 [rootlocalhost yum.repos.d]# vi rpm.repo ##本地仓库标准写法 [baseos] namemiaoshubaseos baseurl/mnt/BaseOS gpgcheck0 [appstream] namemiaoshuappstream baseurlfile:///mnt/AppStream gpgcheck0 2、挂载 [rootlocalhost ~]mount /dev/sr0 /mnt mount: /m…

类与对像(1)

好几个月没有写了&#xff0c;差了好多&#xff0c;这些天补回来吧。 接下来&#xff0c;让我们正式步入C与C语言开始不同的地方。 我对类的理解&#xff1a;类是对于具有相同或相似属性的数据集合。 类的关键词&#xff1a;class&#xff0c;public&#xff0c;protected&a…

vue3中pinia使用持久化管理

安装插件 npm install pinia pinia-plugin-persistpinia进行注册 创建index.ts import { createPinia } from pinia; //对外暴露大仓库 export default createPinia(); 在mian.ts //引入pinpa import { createApp } from vue //引入根组件 import App from ./App.vue const…

昇思MindSpore学习入门-评价指标

当训练任务结束&#xff0c;常常需要评价函数&#xff08;Metrics&#xff09;来评估模型的好坏。不同的训练任务往往需要不同的Metrics函数。例如&#xff0c;对于二分类问题&#xff0c;常用的评价指标有precision&#xff08;准确率&#xff09;、recall&#xff08;召回率&…

全网最详细的appium 自动化测试iOS(二)

一、环境准备&#xff1a; 1、安装appium 2、xcode (appium 版本&#xff1a;12.1.0 xcode版本&#xff1a;12.5 可正常运行&#xff0c;ps:appium 版本&#xff1a;12.1.0 xcode版本&#xff1a;13.0 一直报奇奇怪怪的错误&#xff09; 3、依赖工具包安装 brew install…

基于星火大模型的群聊对话分角色要素提取挑战赛

赛事任务与数据 2024 iFLYTEK A.I.开发者大赛-讯飞开放平台 (xfyun.cn) 从给定的<客服>与<客户>的群聊对话中, 提取出指定的字段信息&#xff0c;待提取的全部字段见下数据说明。 赛题方提供了184条真实场景的群聊对话数据以及人工标注后的字段提取结果&#xf…

linux centos 安装niginx并且添加ssl(https)模块

文章目录 前言一、nginx安装教程1.流程步骤 总结 前言 一、nginx安装教程 1.流程步骤 代码如下&#xff08;示例&#xff09;&#xff1a; 1.先下载linux安装包 2.解压安装命令 sudo tar -zxvf nginx-1.20.1.tar.gz3.进入解压后的目录 sudo cd nginx-1.20.14.安装 sudo y…

opencv环境搭建-python

最近遇到了一些图像处理的需求&#xff0c;所以需要学习一下opencv,来记录一下我的学习历程。 安装numpy pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy安装matplotlib pip install -i https://pypi.tuna.tsinghua.edu.cn/simple matplotlib安装opencv …

CSS技巧:用CSS绘制超写实的酷炫徽章缎带效果,超漂亮,超酷炫

为什么要用CSS来画个徽章&#xff1f;这货脑子进水了吧&#xff01; 今天在电脑前设计&#xff0c;要做徽章效果。突然觉得可以尝试用css实现近似的效果。说干就干&#xff0c;打开编辑器&#xff0c;让我的手指头活跃起来&#xff01; 技术要点 通过多个圆形嵌套和渐变属性…

Google Earth Engine(GEE)——在控制台打印出来所选区域的缩略图

结果 函数 ui.Thumbnail(image, params, onClick, style) A fixed-size thumbnail image generated asynchronously from an ee.Image. Arguments: image (Image, optional): The ee.Image from which to generate the thumbnail. Defaults to an empty ee.Image. param…

MySQL 集群

MySQL 集群有多种类型&#xff0c;每种类型都有其特定的用途和优势。以下是一些常见的 MySQL 集群解决方案&#xff1a; 1. MySQL Replication 描述&#xff1a;MySQL 复制是一种异步复制机制&#xff0c;允许将一个 MySQL 数据库的数据复制到一个或多个从服务器。 用途&…

优化LabVIEW代码以提高软件性能

优化LabVIEW代码对于提高软件性能、减少执行时间和资源消耗至关重要。以下是一些具体的策略和方法&#xff0c;可以帮助LabVIEW程序员优化代码&#xff1a; 1. 代码结构和模块化 使用子VI&#xff1a;将重复使用的代码段封装成子VI&#xff0c;提高代码的可读性和可维护性。 避…

星光云VR全景系统源码

星光云VR全景系统源码 体验地址请查看

11 docker安装redis

目录 安装redis 1. 配置redis配置文件redis.conf 1.1. 找到redis.conf文件 1.2. 配置文件 2. 启动容器 3. 测试redis-cli连接 4. 证明docker使用的是指定的配置文件 安装redis 1. 配置redis配置文件redis.conf 1.1. 找到redis.conf文件 宿主机创建目录/app/redis在/a…

vb.netcad二开自学笔记1:万里长征第一步Hello CAD!

已入门的朋友请绕行&#xff01; 今天开启自学vb.net 开发autocad&#xff0c;网上相关资料太少了、太老了。花钱买课吧&#xff0c;穷&#xff01;又舍不得&#xff0c;咬牙从小白开始摸索自学吧&#xff0c;虽然注定是踏上了一条艰苦之路&#xff0c;顺便作个自学笔记备忘!积…

[AI Perplexica] 安装指南:轻松部署AI驱动的开源搜索引擎

[AI Perplexica] AI驱动的开源搜索引擎[AI Perplexica] 深入解析&#xff0c;AI 架构揭秘 之前&#xff0c;我们看过了 Perplexica 的介绍&#xff0c;特点和架构&#xff0c;了解了其工作原理。 今天&#xff0c;我们一起来部署下 安装 docker 安装 docker https://docs.…

2024年江苏省研究生数学建模竞赛B题火箭烟幕弹运用策略优化论文和代码分析

经过不懈的努力&#xff0c; 2024年江苏省研究生数学建模竞赛B题火箭烟幕弹运用策略优化论文和代码已完成&#xff0c;代码为B题全部问题的代码&#xff0c;论文包括摘要、问题重述、问题分析、模型假设、符号说明、模型的建立和求解&#xff08;问题1模型的建立和求解、问题2模…

RabbitMQ快速入门 - 图像化界面的简单操作

目录 1、RabbitMQ的安装 2、RabbitMQ基本介绍 3、简单案例 4、数据隔离 1、RabbitMQ的安装 官网链接&#xff1a;rabbitmq官网 &#xff08;官网很详细&#xff0c;也可以在官网学习啦~&#xff09; 基础入门&#xff1a;自主学习&#xff1a;最新版本&#xff1a;安装我…