Day-15【选择与循环】选择结构-if语句 - 实践

news/2025/10/8 13:29:11/文章来源:https://www.cnblogs.com/tlnshuju/p/19129536

Day-15【选择与循环】选择结构-if语句 - 实践

2025-10-08 13:27  tlnshuju  阅读(0)  评论(0)    收藏  举报

目录

一、if语句

(1)单分支选择结构

(2)双分支选择结构

(3)多分支选择结构

(4)if-else的嵌套使用

二、开关分支语句(switch)

(1)一般形式

(2)说明:


一、if语句

(1)单分支选择结构

格式:

if(条件) -> 任意格式:非0 -> 为真 0->为假

{语句块} -> 注意当语句块只有一条语句时,可以省略不写{}

规则:如果条件为真,则执行语句块,否则跳过

例如:

if(x>y)

printf("%d",x);

说明:

① if后面的表达式任意类型,语句可以是复合语句

② if下只有一条语句时,可以省略大括号不写

③ if(x)等价于if(x!=0)

if(!x)等价于(x==0)

例题:

求一个数的绝对值
#include <stdio.h>
main()
{
int x,y;
printf("enter an integer:");
scanf("%d",
&x);
y=x; //将x的值赋给y;
if(y<
0) //判断y是否小于0
y=-y; //若小于0就去相反数
printf("\ninteger:%d-->absolute value:%d\n",x,y);
}
运行:
enter an integer: -12
integer: -12 -->absolute value: 12

(2)双分支选择结构

格式:

if (expression条件)
{
语句块1; //只有一句话,大括号可以省
}
else
{
语句块2:
}
规则:如果条件为真,则执行语句块1,否则执行语句块2
if语句例:
#include <stdio.h>
main()
{
int a,b;
printf("输入a:");
scanf("%d",
&a); //输入a的值
printf("输入b:");
scanf("%d",
&b); //输入b的值
if(a==b) //判断a是否等于b
printf("a=b\n"); //真->输入a==b
else
printf("a!=b\n"); //假->输出a!=b
}

(3)多分支选择结构

格式:
if (条件1)
{语句块1}
else if(条件2)
{语句块2}
else if(条件3)
{语句块3}
else
语句4
规则:如果条件1成立,执行语句块1.
条件2 成立,执行语句2
条件3成立,执行语句3
都不成立,执行语句4
例:
if(salary>
1000)//价格
index=0.4;//折扣
else if(salary>
800)
index=0.3;
else if(salary>
600)
index=0.2;
else if(salary>
400)
index=0.1;
else
index=0;
成绩在: 80-100 A
70-79 B
60-69 C
0-59 D
要求:输入一个同学的成绩,输出它的级别
#include <stdio.h>
main()
{
int grade;
scanf("%d",
&grade);
if(grade>
100||grade<
0)
printf("非法数值")//限制输入数字的范围if(grade>=80&
&grade<=100)
printf("A");
else if(grade>=70)
printf("B")
else if(grade>=60)
printf("C");
else
printf("D");
}
键盘上的字符种类分为:
控制字符:__<
32
数字:'0'-'9'
大写字母:'A'-'Z'
小写字母:'a'-'z'判断输入字符的种类:
#include <stdio.h>
main()
{
char c;
printf("输入一个:");
ch=getchar();
if(ch<
32)
printf("是控制字符\n");
else if(ch>
'0'&
&c<='9')
printf("是数字字符\n");
else if(ch>='A'&
&c<='Z')
printf("是大写字符\n");
else if(ch>='a'&
&c<='z')
printf("是小写字符\n);
 else 
 printf("其他");
 
}

(4)if-else的嵌套使用

if-else配对原则:缺省{}时,else总是和它上面离最近的未配对的if相配

if(...)
if(...)
if(...)
else...
else...
else...
输入两数并判断其大小关系:
#include 
main()
{
int x,y;
printf("输入x,y:");
scanf("%d,%d",&x,&y);
if(x!=y)
if(x>y)
printf("X>Y\n");
else
printf("X);
else
printf("X==Y\n");
}

二、开关分支语句(switch)

仍然是一个多分支选择结构

(1)一般形式

switch(表达式) ->表达式不能为小数 表达式中和谁相等,就执行谁后面的语句
{
case e1:语句1;[break;]
case e2:语句2;[break;] //e都为常量,不能变化。是固定的值,也不能是小数
case e3:语句3;[break;] //e就是常量表达式
case e4:语句4;[break;]
case e5:语句5;[break;]
[default:语句;[break;]] 默认,除此之外,都执行它。放到哪里没关系,都可以执行
}

(2)说明:

(1)switch后的表达式以及case后的表达式均不能是实型,可以是整型或字符型等,case后的表达式必须为常量表达式,且值必须互不相同

(2)break是跳出整个复合语句

(3)case后可包含多个可执行语句,且不必加{}

(4)switch可嵌套

(5)default的功能是在其它case后找不到对应常量,则执行default后面语句

(不必再最后一句)

例:
switch(score)
{
case 5:printf("very good");
case 4:printf("good");
case 3:printf("pass");
case 2:printf("fail");
default: printf("data error");
}
此时:
运行结果:score为5时,输出:
very good good pass fail data error
输入一个月份,输出相对应的季节:
#include 
void main()
{
int month;
scanf("%d",&month);
switch(month)
{
case 1:printf("春天");break;
case 2:printf("春天");break;
case 3:printf("春天");break;
case 4:printf("夏天");
case 5:printf("夏天");
case 6:printf("夏天");
case 7:printf("秋天");
case 8:printf("秋天");
case 9:printf("秋天");
case 10:printf("冬天");
case 11:printf("冬天");
case 12:printf("冬天");
default:printf("error"); 这里加不加break都可以
}}
如果month是5,则运行结果就是匹配到5后面的结果都输出
执行下面所有的可执行语句
如果想只输出一个对应的结果,需要在固定的输出后面加break,表示跳出循环合并:
case 1:
case 2:
case 3:printf("春天");break;
当输入1时,则开关进入1中,找不到接着继续往下找,知道case3输出春天并跳出。实现了合并功能
输入123都是春天

!!!一定注意:有break和没break的规则不同

读个程序:
void main()
{
int x=1,y=0,a=0,b=0;
switch(x) //1
{
switch(y) //0
{
case 0:a++;break; //匹配此条,执行a++ 此时a=1.跳出此层
case 1:b++;break;
} 注意:这里没有break则接着后面的语句执行:
case 2:a++;b++;break; //执行a++,b++ a=2,b=1碰到break跳出
case 3:a++;b++;
}
printf("\na=%d,b=%d",a,b); 最终输出a=2,b=1
}运行结果:a=2,b=1


总结:

1、☆= ☆!=0

!☆= ☆==0

2、if-else配对原则:缺省{}时,else总是和它上面离他最近的未配对的if相配对

3、(1)switch后面括号中可以是常量或变量表达式,但不能是实型数据

(2)case后面是常量表达式,且不能是实型,且不能有重复

(3)break、default的功能需要注意

4、注意格式书写

switch()

{ case__:____;

__:

}

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

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

相关文章

做义工旅行有哪些网站wordpress验证码

Oracle提示错误消息ORA-28001: the password has expired&#xff0c;是由于Oracle11G的新特性所致&#xff0c; Oracle11G创建用户时缺省密码过期限制是180天&#xff08;即6个月&#xff09;&#xff0c; 如果超过180天用户密码未做修改则该用户无法登录。 Oracle公司是为了数…

咕乡

一篇模仿《王安遂》的拙作,以此纪念我初中的 OI 生涯。[1]我冒了严寒,回到相隔二千馀题,别了二十馀天的 OJ 去。 时候既然是初三;渐近 OJ 时,网络又崩溃了,404 吹进浏览器中,呜呜的响,从主页向外一望,泛白的 …

在东莞做网站广告专业的前景和就业方向

01为什么用 JavaScript 来开发桌面应用&#xff1f;曾经的 JavaScript 脆弱、简陋、甚至有被边缘化的危险&#xff0c;不过 JavaScript 在经过了两次飞跃后&#xff08;以 V8 为首的 JavaScript 引擎和 Node.js 的问世&#xff09;&#xff0c;不再受人欺负&#xff0c;早已升级…

opencv应用经典bug

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Linux随记(十八) - 详解

Linux随记(十八) - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &…

通信算法之281:大疆DJI无人机ID-DJI DroneID开源工程-相关问题-协议信息问题 - 实践

通信算法之281:大疆DJI无人机ID-DJI DroneID开源工程-相关问题-协议信息问题 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; f…

手机网站适应屏幕罗湖网站(建设深圳信科)

目录 1、一致性算法 1.1、什么是分布式系统的副本一致性?有哪些? 1.2、在分布式系统中有哪些常见的一致性算法?

唐山如何做百度的网站建设国际域名的外贸网站

以前公司每年都有年底总结&#xff0c;来新公司没有了年底总结&#xff0c;总觉得缺点什么&#xff0c;公司没有就自己写吧&#xff0c;人生感悟在这里就不多说了&#xff0c;本篇主要总结一下这一年来知识点吧。 这些知识点&#xff0c;每个慢慢整理&#xff0c;将来要保证&am…

全国设计网站建设服务器的作用

【opencv】【CPU】windows10下opencv4.8.0-cuda C版本源码编译教程 提示:博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论 文章目录 【opencv】【CPU】windows10下opencv4.8.0-cuda C版本源码编译教程前言准备工具cmakeopencv4.8.0opencv_contrib CMake编译VS2…

Linux 文件 MD5 校验完全指南

Linux 文件 MD5 校验完全指南在 Linux 系统中,文件的完整性校验是数据安全的基础操作 —— 无论是下载软件包、传输备份文件,还是验证配置文件是否被篡改,MD5 校验都是最常用的轻量工具。MD5 算法通过对文件内容计算…

怎样找素材做网站wordpress联系方式

到目前为止&#xff0c;Robomongo仍是MongoDB最好的客户端管理工具&#xff0c;如需在Ubuntu上安装Robomongo&#xff0c;可直接从官网下载.tar.gz压缩包进行解压&#xff0c;然后直接运行bin目录下的robomongo文件即可启动界面。例如我将下载下来的.tar.gz压缩包解压到/usr/lo…

地方网站怎么做推广建筑公司分几级资质

您好&#xff0c;了解到您在更新系统时遇到问题。目前使用的版本是比较靠前的版本吗&#xff1f;要求进行更新的是Windows 10 1709 吧&#xff1f;您可以尝试使用Media Creation Tool创建ISO介质&#xff0c;并使用该介质进行升级安装&#xff0c;看下效果&#xff1a;https://…

week2课后作业

动手动脑:代码在输出时调用名称相同的方法,传入的确实不同类型的参数,最终调用的是两个不同的方法,在调用名称相同的方法时会根据传入参数调用相应的方法

Java 语言程序设计(第二讲 方法)动手动脑与课后实验问题整理文档 - 20243867孙堃2405

一、动手动脑问题 (一)随机数生成相关 依据特定算法编写方法生成指定数目随机整数:已知纯随机数发生器的参数为 Modulus = 2 - 1 = int.MaxValue、Multiplier = 7⁵ = 16807、C = 0,且当显示过 2 - 2 个数之后才可…

唐山网站建设优化方法个人网站怎么做内容比较好

记录一下自己工作中常用的linux命令 查询类 top 实时查看进程 free -h 查看内存 df -h 查看已挂在的存储 fdisk -l 查看所有存储&#xff0c;包含未挂载 编辑类 passwd 修改密码&#xff0c;要进入到系统

asp网站开发模板临沂手机建站模板

作者 | 小碗汤来源 | 我的小碗汤今天演示一个项目&#xff0c;利用Unity做场景、用C#做交互逻辑&#xff0c;将k8s制作成一个3D射击游戏。正好最近在学习Unity&#xff0c;所以利用这个项目开始上手挺合适的。源码、可执行文件可以自行下载&#xff0c;也可在文末获取&#xff…

scratch软件下载拼多多标题优化软件

慢SQL日志简述通过命令和查看日志文件的方式直接查看mysql服务器的慢sql参数配置参数作用slow_query_log是否启用slow_query_log_file日志文件long_query_time慢sql阈值log_slow_adimin_statements是否记录数据库管理相关的sqllong_queries_not_using_indexes是否记录未使用索引…

算法第一章

命名规范:变量、函数、类等的命名要表意清晰。比如用驼峰命名法(如userName),类名采用大驼峰(如UserManager),常量全大写加下划线(如MAX_COUNT),让阅读代码的人能快速明白其作用。 格式规范:代码要有合适的…

义乌官网制作网站wordpress hero theme

1. mmap 基础概念 mmap 即 memory map&#xff0c;也就是内存映射。 mmap 是一种内存映射文件的方法&#xff0c;即将一个文件或者其它对象映射到进程的地址空间&#xff0c;实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。实现这样的映射关系后&#xff…

mac打开app提示文件损坏解决方案

打开终端执行sudo xattr -rd com.apple.quarantine 把app文件移入终端重新打开app即可