C语言入门 Day_9 条件判断

目录

前言:

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.mzph.cn/news/50633.shtml

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

相关文章

面试热题(复原ip地址)

有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 . 分隔。 例如:"0.1.2.201" 和 "192.168.1.1" 是 有效 IP 地址,但是 "0.011.255.24…

pyqt5-自定义停靠栏头部

import sys from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtGui import *class CustomDock(QDockWidget):def __init__(self, title: str, parentNone):super().__init__(title, parent)"""停靠栏的头部"""h_layout Q…

行式存储与列式存储

1.概述 数据处理大致可分为两大类,联机事务处理OLTP(on-line transaction processing) 和联机分析处理OLAP(on-line analytical processing)。 OLTP是传统关系型数据库的主要应用,用来执行一些基本的、日常的事务处理,比如数据库记录的增、删…

android NullPointerException externalCacheDir

先看代码: fun Context.getMyCacheDir(): String {return externalCacheDir!!.absolutePath "/my_cache" }如上代码,在某些手机可能会出现crash。 原因详细阅读api,注意他有一个大大的注解Nullable: Nullablepublic a…

uniapp微信小程序点击右上角菜单分享功能权限配置

个人项目地址: SubTopH前端开发个人站 (自己开发的前端功能和UI组件,一些有趣的小功能,感兴趣的伙伴可以访问,欢迎提出更好的想法,私信沟通,网站属于静态页面) SubTopH前端开发个人站…

solidity0.8.0的应用案例7:线性释放合约

在传统金融领域,一些公司会向员工和管理层提供股权。但大量股权同时释放会在短期产生抛售压力,拖累股价。因此,公司通常会引入一个归属期来延迟承诺资产的所有权。 同样的,在区块链领域,Web3初创公司会给团队分配代币,同时也会将代币低价出售给风投和私募。如果他们把这…

threejs贴图系列(一)canvas贴图

threejs不仅支持各种texture的导入生成贴图,还可以利用canvas绘制图片作为贴图。这就用到了CanvasTexture,它接受一个canas对象。只要我们绘制好canvas,就可以作为贴图了。这里我们利用一张图片来实现这个效果。 基础代码: impo…

开始MySQL探索——数据库概述

计算机语言 计算机语言概述 计算机语言(Computer Language)可以简单的理解为一种计算机和人都能识别的语言。 机器语言 汇编语言 高级语言 机器语言 汇编语言 高级语言 SQL语言基础 SQL的概述 SQL全称:Structured Query Language&…

无涯教程-PHP - preg_match()函数

preg_match() - 语法 int preg_match (string pattern, string string [, array pattern_array], [, int $flags [, int $offset]]]); preg_match()函数在字符串中搜索pattern,如果存在pattern,则返回true,否则返回false。 如果提供了可选…

介绍一些编程语言— CSS 语言

介绍一些编程语言— CSS 语言 CSS 语言 简介 CSS,层叠样式表,是一种用来表现 HTML 或 XML 等文件样式的计算机语言。CSS 不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。 CSS 能够对网页中元素位置的排版进…

Docker Compose一键管理容器

可以一键批量管理docker的容器。将所有需要创建的容器定义在compose配置文件中,通过一个命令一键可以创建并运行这些容器,而不需要一个一个启动。可以批量启动停止服务。 安装 #安装Docker-Compose并安装到/usr/local/bin/docker-compose curl -L &quo…

Ansible 临时命令搭建安装仓库

创建一个名为/ansible/yum.sh 的 shell 脚本,该脚本将使用 Ansible 临时命令在各个受管节点上安装 yum 存储库. 存储库1: 存储库的名称为 EX294_BASE 描述为 EX294 base software 基础 URL 为 http://content/rhel8.0/x86_64/dvd/BaseOS GPG 签名检查为…

代码随想录22| 216.组合总和III, 17.电话号码的字母组合

216.组合总和III 题目链接/文章讲解:链接地址 视频讲解:链接地址 代码思路:回溯三部曲: 1.确定函数参数:n,k,sum,startIndex; 2.结束条件,path k,并且如果sumn 结束递归 3.递归回溯逻辑。 class Solution…

11_Redis经典五大类型源码及底层实现

Redis经典五大类型源码及底层实现 一、Redis数据类型的底层数据结构 SDS动态字符串双向链表压缩列表 zpilist哈希表 hashtable调表 skiplist整数集合 intset快速列表 quicklist紧凑列表 listpack 二、Redis源码地址 Github:https://github.com/redis/redis 三、…

java 项目运行时,后端控制台出现空指针异常---java.lang.NullPointerException

项目场景: 提示:这里简述项目背景: 场景如下: java 项目运行时,后端控制台出现如下图所示报错信息:— 问题描述 提示:这里描述项目中遇到的问题: java 项目运行时,后…

Elasticsearch 常见的简单查询

查看es中有哪些索引 请求方式:GET 请求地址:http://localhost:9200 /_cat/indices?v 参数:无 结果: 查看索引全部数据 请求方式:GET 请求地址:http://localhost:9200/index-2023-08/_search 参数&a…

每日一学——STP、VRRP 、BFD、POE

STP (Spanning Tree Protocol): STP是一种用于构建安全和冗余的网络拓扑的协议。 它能够检测并防止网络中的环路形成,从而防止数据包在网络中无限循环。STP通过选择一个主桥和确定最短路径来实现拓扑稳定。STP有多种版本,如STP、RSTP和PVST等。 VRRP (V…

mongodb 数据库管理(数据库、集合、文档)

目录 一、数据库操作 1、创建数据库 2、删除数据库 二、集合操作 1、创建集合 2、删除集合 三、文档操作 1、创建文档 2、 插入文档 3、查看文档 4、更新文档 1)update() 方法 2)replace() 方法 一、数据库操作 1、创建数据库 创建数据库…

使用R语言绘制折线图

写在前面 昨天我们分享了使用Python绘制折线图的教程,跟着NC学作图 | 使用python绘制折线图,考虑到很多同学基本不使用Python绘图。那么,我们也使用R语言复现此图形。 此外,在前期的教程中,我们基本没有分享过折线图的教程。因此,我们在这里也制作一期关于折线图的教程。…

使用VisualStudio制作上位机(二)

文章目录 使用VisualStudio制作上位机(二)第三部分:GUI内部函数设计使用VisualStudio制作上位机(二) Author:YAL 第三部分:GUI内部函数设计 事件添加 给窗体或窗体按钮相关的操作添加事件有两种方式,事件的名字直白的表面了这是什么事件。 直接双击界面,自动生成窗…