C语言入门 Day_9 条件判断

news2024/12/24 7:01:37

目录

前言:

1.if判断

2.else判断

3.易错点

4.思维导图


前言:

 我们知道比较运算和逻辑运算都会得到一个布尔型的数据,要么为真(true),要么为假(false)

今天我们来学习真和假在编程中的实际使用——判断

在现实生活中,我们经常根据一些条件是否成立,来判断我们接下来的行动。比如“如果明天不下雨,就出去跑步”。

同样的在编程中我们也需要根据不同的条件来执行不同的代码。比如“如果点击[查看图片]按钮,就展示猫咪图片”。

这种在代码中根据不同的条件(真或假),执行不同代码的结构,我们叫它“判断语句”。

1.if判断

1.1

如果判断条件为真(true),就让程序执行某行代码;

如果判断条件为假(false),就让程序不执行某行代码。

1.如果判断条件为,这里的printf()语句会得到执行

if(true){
         printf("会打印这行代码\n");
}

1.条件判断的关键字if

2.括号内是进行判断的条件

3.判断条件的结果,这里是true

4.花括号{},if判断的固定语法格式,括号里面的代码“属于”这个if判断语句

5.if判断具体要执行的代码

2.如果判断条件为,这里的printf()语句不会得到执行

if(false){
          printf("不会打印这行代码\n");
}

1.if条件判断的关键字if

2.括号内是进行判断的条件

3.判断条件的结果,这里是false

4.花括号{},if判断的固定语法格式,括号里面的代码“属于”这个if判断语句

5.if判断具体要执行的代码,由于是false这个代码不会执行

1.2

if是一个关键字,是英文“如果”的意思,它表明,如果后面括号内的判断条件为真的话,就执行下述代码否则,就不执行

具体的判断条件在括号()里面,它可以是一个比较运算,也可以是一个逻辑运算,当然也可以是一个布尔数

因为比较运算和逻辑运算本质上也是得到一个布尔数。

花括号{},花括号里面的代码“属于”这个if判断,也就是if判断如果成立(真),就会执行花括号里面的代码,如果为不成立(假),就不会执行花括号里面的代码。

在判断条件这里,我们上面代码中直接用的true和false,现在我们来看看比较运算和逻辑运算如何作为判断条件来使用。

1.3  

1.比较运算和逻辑运算作为判断条件的代码:

if(5>1){
          printf("5大于1\n");
}
if(true && true){
          printf("真且真的结果为真\n");
}

1.一个比较运算的判断条件,5 > 1

2.一个逻辑运算的判断条件,true && true

2.填入一个比较运算5 > 1,注意空格:

if( 5>1 ){
   printf("5大于1\n");
}

输出结果

5大于1


3.填入一个结果为false的比较运算判断条件2大于4,并观察代码是否会执行:

if( 2>4 ){
       printf("二大于四\n");
}

我们可以看到,5>1为,所以代码会执行;2>4为,所以代码不会执行

3.填入逻辑运算 true && true:

if( true&&true ){
    printf("真并且真结果是真\n");            
}

输出结果

真并且真的结果是真


4.填入一个逻辑运算true || false:

if(true||false){
      printf("真或者假的结果是真\n");
}

输出结果 

真或者假的结果是真


我们再来重温一遍if判断的关键点:

括号内的判断条件成立(真,true),则会执行花括号中的代码;

括号内的判断条件不成立(假,false),就会跳过(不执行)花括号中的代码。

1.4

如果判断条件不成立,那么if里面的代码就不会得到执行,代码会跳过这些代码,继续往下执行

if( true&&false ){
     printf("真并且假的结果是,真!\n");
}
     printf("真并且假的结果是,假!\n");

eg:

我们用代码来模拟这样一种现实情况:如果今天是星期天,且今天出太阳,我们就输出“我们要去跑步”。

1.我们给布尔变量today_is_sunday赋值为true,today_is_sunny赋值为true,然后让程序进行判断

bool today_is_sunday=true;
bool today_is_sunny=true;
if(today_is_sunday && today_is_sunny){
   printf("今天是星期天而且今天是晴天,我要去跑步\n");
}
   printf("今天去跑步了么\n");

2.今天是周五,所以今天是周天是false,因此today_is_sunday = false,我们再来看看判断:

bool today_is_sunday=false;
bool today_is_sunny=true;
if(bool today_is_sunday && today_is_sunny){
   printf("今天是星期天且今天是晴天,我要去跑步\n"); 
}
   printf("今天不是星期天,或者不是晴天\n");

输出结果

今天不是星期天或者不是晴天


如果if关键字的判断条件成立的话,它“下属”的代码块会得到执行。

比如符合条件的时候输出“如果今天是周五,明天就是周六”

1.5

那如果今天不是周五的话,我们还想输出,“明天就不是周六”,应该怎么实现呢?

第一种思路是,我们可以写两个if判断,

第一个if判断是如果今天是周五,那么输出“明天是周六”;

第二个if判断是如果今天不是周五,那么输出“明天不是周六”,注意我们使用了非运算!

bool today_is_friday=true;
if(today_is_friday){
    printf("明天是周六\n");
}
if(!today_is_friday){
    printf("明天不是周六\n"); 
}

除此以外,我们还可以直接使用else关键字,来达到同样的效果。

2.else判断

我们知道if的条件成立的话,if内部的代码块会被执行。

else的作用就是,如果if的条件不成立,那么else内部的代码块就会被执行。

它们之间的关系就类似于汉语中的“如果-否则”。

2.1

同样的,如果今天是周五,就输出“明天是周六”;如果今天不是周五,就输出“明天不是周六”:

bool today_is_friday=true;
if(today_is_friday) {
   printf("明天是周六\n");
}  else{
   printf("明天不是周六\n");
}

1.定义一个布尔变量today_is_friday,并赋值true

2.判断条件today_is_friday

3.判断为真,执行printf()代码

对于if-else的结构来说的话,只会执行一段代码,要么执行if里面的代码,要么执行else里面的代码。

else是无法独立出现的,它需要和if配对出现。

为什么else不需要像if一样后面跟一个判断条件呢?

这是因为else囊括了if条件以外的所有条件:只要if判断的条件不成立,就会进入else的范畴。

else是一个if条件的补集。

2.2

判断两个人的年龄谁大

1.先做对应的打印输出,先定义两个整型变量my_age和your_age:

2.最后填入else

int my_age=11;
int your_age=16;
if( my_age>your_age ){
     printf("我年龄更大\n“);
} else {
     printf("你年龄更大\n");
}

输出结果

你年龄更大


有了ifelse,我们就可以比较全面的根据不同情况,进行不同的代码执行了。

2.3

除了比较年龄,我们还可以比较身高

1.定义两个整型变量my_height和your_height:

2.填入if-else:

int my_height=175;
int your_height=177;
if( my_height > your_height ){
    printf("我更高\n"); 
} else{
    printf("你更高\n");
}

输出结果

你更高


在学习if和else之前,我们的代码只能从上至下顺序执行,现在我们可以根据不同的判断条件,来选择代码执行的流向了。这种结构叫做条件判断分支

3.易错点

if(判断条件){ 只有当判断条件为真(true),才会执行if代码块里的代码

    printf("会打应这行代码\n");

}  else{  if 条件不成立,执行else代码块里的代码

   printf("判断条件不为真\n");

}

if后面的判断条件是需要用括号括起来的;

else后面不用写判断条件,因为else囊括了if条件以外的所有条件。

4.思维导图

 在撰写这篇文章时,我参考了《白纸编程》这个app的观点和思想,我要感谢他们对我的启发和帮助。

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

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

相关文章

【性能优化】使用Perfetto定位应用启动性能的瓶颈

Android应用启动优化相关的文章已经有很多人都写过了,但是主要都是聚焦在,为了启动性能都做了哪些改动上,少见有文章会说应该如何分析、识别应用的启动性能。 本篇文章将会结合我个人对Perfetto的实际使用经历,讲解车载应用的启动…

Python“牵手”当当网商品详情API接口运用场景及功能介绍,当当网API接口申请指南

当当网是全球知名的综合性网上购物商城,由国内著名出版机构科文公司、美国老虎基金、美国IDG集团、卢森堡剑桥集团、亚洲创业投资基金(原名软银中国创业基金)共同投资成立。当当网是北京当当网信息技术有限公司营运的一家中文购物网站&#x…

【校招VIP】产品行测考点之图的推理和分析

考点介绍: 大厂产品校招笔试里经常会出现行测的考察,而图的推理是行测里面稍微有难度的一部分。因为时间有限,很多同学因为没有解题思路而丢分。 『产品行测考点之图的推理和分析』相关题目及解析内容可点击文章末尾链接查看! 一…

【Unity小技巧】最简单的UI设置适配方案,萌新必看

文章目录 前言导入素材开始一、页面适配方案二、侧边栏适配方法一方法二 参考完结 前言 这期来讲一个简单的UI设计方案,很多同学可能搞不懂锚点、轴心这些概念,导致做好的UI在别人的设备上,乱跑或者是重叠,或者是参加游戏老发时间…

10-案例: 注册登录

项目思路: 1. 首页展示 将数据传递给前端模板渲染 2. 注册用户 接收前端传递的数据,保存后,重定向到首页 3. 删除用户 接收前端传递的用户名,进行删除 4. 修改用户 接收前端传递的数据,老名字进行判断,新数据修改数据 项目结构: 构建蓝图: (1). apps / user / model.py 增…

知道吗?微软将Python集成到Excel中,国产软件“抄作业”了

Excel集成Python 众所周知哦,VBA是一种基于微软的Visual Basic语言的宏编程语言,专为在Office应用程序中执行自动化任务而设计。 VBA适用于Excel、Word、PowerPoint等Office套件中的宏编程,可直接操作和控制Office应用程序的对象模型。 我们…

Golang Gorm 高级查询之where查询

插入测试数据 package mainimport ("fmt""gorm.io/driver/mysql""gorm.io/gorm" )type Student struct {ID int64Name string gorm:"size:6"Age intEmail *string }func (*Student) TableName() string {return "student&q…

名片扫描仪有何优缺点?要不要买?

名片扫描仪是一种专用设备,用于将纸质名片上的信息转换为数字格式。它可以通过光学字符识别(OCR)技术将名片上的文本、图像和其他数据提取出来,并将其保存为电子文件或导入到相关应用程序中。 名片扫描仪是一种年代比较久的产品了…

申请甲骨文免费vps的流程

前提:拥有一张VISA信用卡或者mastercard信用卡 背景:甲骨文的免费VPS,已经使用了一年了,不得不说还是很香的。当时申请的节点是日本的,这次想申请一个美国的,话不多说,开冲。 最初申请的时候也是失败了好多…

【Terraform学习】使用 Terraform 从 EC2 实例访问 S3 存储桶(Terraform-AWS最佳实战学习)

使用 Terraform 从 EC2 实例访问 S3 存储桶 实验步骤 前提条件 安装 Terraform: 地址 下载仓库代码模版 本实验代码位于 task_ec2_s3connet 文件夹中。 变量文件 variables.tf 在上面的代码中,您将声明,aws_access_key,aws_…

linux 同时kill杀死多进程实践

使用场景 当程序中有使用到多进程且进程数较多的情况,如下图,且需要通过控制台杀死所有的 GSM_run.py 的进程时,利用 kill 命令一个一个的去结束进程是及其耗时且繁琐的,这时就需要我们的kill多进程的命令工作了。 批量 Kill 进程…

分享好用的翻译软件

网易有道翻译→网易有道翻译

软件产品为什么需要做测试报告?

在当今数字化的时代,软件产品的开发和使用已经成为各行各业的常态。随着软件市场的竞争越来越激烈,用户对于软件品质和功能的要求也越来越高。而为了确保软件产品质量和稳定性,软件测试报告变得至关重要。 一、软件产品为什么要做测试报告?…

学习ts(七)泛型

定义 泛型允许我们在强类型程序设计语言中编写代码时使用一些以后才指定的类型,在实例化时作为参数指明这些类型。在ts中,定义函数、接口或类的时候,不预先定义好具体的类型,而在使用的时候在指定类型的一种特性。 例子&#xff…

electron软件安装时,默认选择为全部用户安装

后续可能会用electron开发一些工具,包括不限于快速生成个人小程序、开发辅助学习的交互式软件、帮助运维同学一键部署的简易版CICD工具等等。 开发进度,取决于我懒惰的程度。 不过不嫌弃的同学还是可以先关注一波小程序,真的发布工具了&…

32位 STM32 打印 uint64_t 类型

32位 STM32 打印 uint64_t 类型 32位 STM32 打印 uint64_t 类型 32位 STM32 打印 uint64_t 类型 测试代码,未整理,可参考! uint64_t cnt 0x1122334455667788;uint32_t test1 (uint32_t)(cnt >> 32);uint64_t test2 (uint64_t)(cnt &…

Squaretest 1.8.3 安装激活

1. 插件下载 2. 离线安装 3. 插件激活

Springboot集成redis单机与集群

一 集成Redis单机版 1 pom文件添加jar <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> 2 在配置文件application.properties添加redis配置 #…

红米手机怎么录屏?教你快速掌握录屏技巧

“红米怎么录屏呀&#xff0c;最近需要录一场线上的视频会议&#xff0c;眼看就要到时间了&#xff0c;就是找不到录屏在哪里&#xff0c;真的很着急&#xff0c;这场会议非常重要&#xff0c;有没有人会的&#xff0c;教教我&#xff0c;非常感谢&#xff01;” 在手机使用过…

提升政府公文品质:精益求精的校对之道

在当今的数字化时代&#xff0c;公文校对已经不再是简单地检查拼写和语法错误。在确保文档的准确性、完整性和专业性的同时&#xff0c;我们也面临着各种新的挑战&#xff0c;例如敏感词的识别。幸运的是&#xff0c;随着技术的发展&#xff0c;现在有了智能校对工具如“爱校对…