【无标题】C语言学习笔记5--循环结构和选择结构

5.1 运算符和运算符

5.1.1逻辑运算发

运算符说明结核性举例
&&与运算,双目,对应数学中的“且”左结合1&&0、(9>3)&&(b>a
与运算,双目,对应数学中的“且”左结合1
!非运算,单目,对应数学中的“非”右结合!a、!(2<5)

举例

#include <stdio.h>
int main(){int a = 0, b = 10, c = -6;int result_1 = a&&b, result_2 = c||0;printf("%d, %d\n", result_1, !c);printf("%d, %d\n", 9&&0, result_2);printf("%d, %d\n", b||100, 0&&0);return 0;
}
运行结果:
0, 0
0, 1
1, 0

5.1.2 关系运算符

关系运算符在使用时,它的的两边都会有一个表达式,比如变量、数值、加减乘除运算等,关系运算符的作用就是判明这两个表达式的大小关系。注意,是判明大小关系,不是其他关系。

关系运算符含义数学中的表示
<小于<
<=小于或等于
>大于>
>=大于或等于
==等于=
!=不等于

举例

#include <stdio.h>
int main(){char c='k';int i=1, j=2, k=3;float x=3e+5, y=0.85;int result_1 = 'a'+5<c, result_2 = x-5.25<=x+y;printf( "%d, %d\n", result_1, -i-2*j>=k+1 );printf( "%d, %d\n", 1<j<5, result_2 );printf( "%d, %d\n", i+j+k==-2*j, k==j==i+5 );return 0;
}
运行结果:
1, 0
1, 1
0, 0

注意

需要提醒的是,==才表示等于,而=表示赋值,大家要注意区分,切勿混淆。

5.1.3 条件运算符

格式

表达式1 ? 表达式2 : 表达式3

结合方向

自右向左

举例

#include <stdio.h>
int main(){int a, b;printf("Input two numbers:");scanf("%d %d", &a, &b);printf("max=%d\n", a>b?a:b);return 0;
}
运行结果:
Input two numbers:23 45
max=45

5.1.4 优先级

赋值运算符(=) < &&和|| < 关系运算符 < 算术运算符 < 非(!)

举例

#include <stdio.h>
int main(){char c='k';int i=1,j=2,k=3;float x=3e+5,y=0.85;printf( "%d,%d\n", !x*!y, !!!x );printf( "%d,%d\n", x||i&&j-3, i<j&&x<y );printf( "%d,%d\n", i==5&&c&&(j=8), x+y||i+j+k );return 0;
}
运行结果:
0,0
1,0
0,1

5.2 if-else 选择结构

用法

 ### 用法1
if(判断条件){语句块1
}else{语句块2
}
等效图

在这里插入图片描述

用法2

if(判断条件){
语句块
}

等效图

在这里插入图片描述

用法3:多分支

if(判断条件1){
语句块1
} else if(判断条件2){
语句块2
}else if(判断条件3){
语句块3
}else if(判断条件m){
语句块m
}else{
语句块n
}

用法4 :嵌套
```#include <stdio.h>int main(){int a,b;printf("Input two numbers:");scanf("%d %d",&a,&b);if(a!=b){  //!=表示不等于if(a>b) printf("a>b\n");else printf("a<b\n");}else{printf("a=b\n");}return 0;}
运行结果:
Input two numbers:12 68
a<b

5.3 switch-case 选择结构

格式

switch(表达式){
case 整型数值1: 语句 1;
case 整型数值2: 语句 2;

case 整型数值n: 语句 n;
default: 语句 n+1;
}
需要重点强调的是,当和某个整型数值匹配成功后,会执行该分支以及后面所有分支的语句。
break 是C语言中的一个关键字,专门用于跳出 switch 语句。
case 后面必须是一个整数,或者是结果为整数的表达式,但不能包含任何变量。请看下面的例子:

case 10: printf("..."); break;  //正确
case 8+9: printf("..."); break;  //正确
case 'A': printf("..."); break;  //正确,字符和整数可以相互转换
case 'A'+19: printf("..."); break;  //正确,字符和整数可以相互转换
case 9.5: printf("..."); break;  //错误,不能为小数
case a: printf("..."); break;    //错误,不能包含变量
case a+10: printf("..."); break;  //错误,不能包含变量

default 不是必须的。当没有 default 时,如果所有 case 都匹配失败,那么就什么都不执行

5.4 while循环结构

while循环

格式

	while(表达式){
语句块

}
我们通常将“表达式”称为循环条件,把“语句块”称为循环体,整个循环的过程就是不停判断循环条件、并执行循环体代码的过程。

举例

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

do-while

格式

do{
语句块
}while(表达式);

举例

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

for 循环

格式

for(表达式1; 表达式2; 表达式3){
语句块
}

等效图

在这里插入图片描述

举例

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

5.6 循环嵌套和跳出

break

举例

#include <stdio.h>
int main(){int i=1, j;while(1){  // 外层循环j=1;while(1){  // 内层循环printf("%-4d", i*j);j++;if(j>4) break;  //跳出内层循环}printf("\n");i++;if(i>4) break;  // 跳出外层循环}return 0;
}
运行结果:
1   2   3   4
2   4   6   8
3   6   9   12
4   8   12  16

continue

举例

#include <stdio.h>
int main(){char c = 0;while(c!='\n'){  //回车键结束循环c=getchar();if(c=='4' || c=='5'){  //按下的是数字键4或5continue;  //跳过当次循环,进入下次循环}putchar(c);}return 0;
}
运行结果:
0123456789↙
01236789

嵌套

举例

#include <stdio.h>
int main()
{int i, j;for(i=1; i<=4; i++){  //外层for循环for(j=1; j<=4; j++){  //内层for循环printf("%-4d", i*j);}printf("\n");}return 0;
}
运行结果:
1   2   3   4
2   4   6   8
3   6   9   12
4   8   12  16

5.7 总结

最后还要注意 break 和 continue 关键字用于循环结构时的区别:
break 用来跳出所有循环,循环语句不再有执行的机会;
continue 用来结束本次循环,直接跳到下一次循环,如果循环条件成立,还会继续循环。

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

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

相关文章

Redis的安装与基本使用

文章目录 Linux 环境下安装Redis下载Redis 安装包解压安装包安装Redis进入redis安装包下编译并且安装到指定目录下 启动redis配置远程访问找到Redis.config文件 Windows 环境下安装Redis说明官方提供方式安装或启用WSL2在WSL&#xff08;Ubuntu&#xff09;上安装Redis启动Redi…

26052-2022 硬质合金管状焊条 思维导图

声明 本文是学习GB-T 26052-2022 硬质合金管状焊条. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本文件规定了硬质合金管状焊条的技术要求、试验方法、检验规则、标志、包装、运输、贮存、随行文 件和订货单内容。 本文件适用于钢件的表…

Hive【Hive(二)DML】

启动 hive 命令行&#xff1a; hive DML 数据操作 1、数据导入 1.1、向表中装载数据&#xff08;load&#xff09; 语法&#xff1a; hive> load data [local] inpath 数据的path [overwrite] into table student [partition (partcol1val1,…)];&#xff08;1&#x…

修炼k8s+flink+hdfs+dlink(一:安装flink)

一&#xff1a;standalone的ha环境部署。 创建目录&#xff0c;上传安装包。 mkdir /opt/app/flink 上传安装包到本目录。 tar -zxvf flink-1.13.6-bin-scala_2.12.tgz配置参数。 在flink-conf.yaml中添加zookeeper配置 jobmanager.rpc.address: node01 high-availability: …

R语言学习笔记

R语言学习笔记 一.准备环境二.认识控制台三.R包四.数据结构1.向量Vector1.1创建向量1.2访问向量中的数据1.3向量的循环补齐 2.矩阵matrix2.1创建矩阵2.2访问矩阵中的数据 3数组Array3.1创建数组3.2访问数组中的数据 4.数据框Dataframe4.1创建数据框4.2访问数据框中的数据 5因子…

GitLab多人开发步骤

目录 一、基于develop创建自己的feature分支二、提交代码格式简易版 三、提交到远程仓库四、提交合并请求 一、基于develop创建自己的feature分支 使用git checkout切换到develop分支 git checkout develop 基于develop分支创建feature分支 格式&#xff1a; git checkout -b …

【CMU15-445 Part-12】Query Execution I

Part12-Query Execution I Processing Models Processing Model主要指的是明确如何去执行一个查询计划&#xff08;top 2 bottom or bottom 2 top,operator之间的传递&#xff09;。 Iterator Model (volcano model/pipeline model);每个算子实现一个Next( )&#xff0c;父…

vim缓存-交换文件

Catf1agCTF靶场 web swp 题目链接&#xff1a;http://catf1ag.cn/ 个人博客&#xff1a;https://sword-blogs.com/ 题目考点&#xff1a; vim在编辑文档的过程中如果异常退出&#xff0c;会产生缓存文件 vim 交换文件名 参考文章&#xff1a;vim手册 https://yianwillis.…

React 全栈体系(十六)

第八章 React 扩展 五、Context 1. 代码 /* index.jsx */ import React, { Component } from react import ./index.css//创建Context对象 const MyContext React.createContext() const {Provider,Consumer} MyContext export default class A extends Component {state …

Linux进程概念

文章目录 前言一、操作系统1、概念2、设计OS的目的3、总结 二、进程1、基本概念2、查看进程2.1 使用ps axj命令2.2 通过 /proc 系统文件夹查看 3、通过系统调用获取进程标示符3.1 getpid() 系统调用3.2 getppid() 系统调用 4、通过系统调用fork创建子进程4.1 使用fork创建子进程…

Linux 常用基本命令

1.走近Linux系统 开机登录 开机会启动许多程序。它们在Windows叫做"服务"&#xff08;service&#xff09;&#xff0c;在Linux就叫做"守护进程"&#xff08;daemon&#xff09;。 关机 在linux领域内大多用在服务器上&#xff0c;很少遇到关机的操作。毕竟…

【yolox训练过程中遇到的问题集合】

这里写目录标题 深度学习遇到的一系列bugVScode无法激活conda1.vscode加载web 视图报错2.CUDA out of memory3.voc2007数据集中的txt文件4.object has no attribute ‘cache‘5.KeyError:model6.No module named loguru7.Python AttributeError: module ‘distutils‘ has no a…

微信小程序 工具使用(HBuilderX)

微信小程序 工具使用:HBuilderX 一 HBuilderX 的下载二 工具的配置2.1 工具 --> 设置 --> 运行配置2.1.1 微信开发者工具路径2.1.2 node 运行配置 2.2 插件 工具 --> 插件安装2.2.1 下载插件 三 微信小程序端四 同步运行五 BUG5.1 nodemon在终端无法识别 一 HBuilderX…

没有一技之长,该如何找工作?

很负责任的告诉你&#xff0c;跟你一样有这个困惑的人真的太多了&#xff01; 而且你也会发现&#xff0c;你身边的大多数人也都很迷茫。 家庭、学历一般&#xff0c;没啥特长爱好&#xff0c;更没有拿的出手的技能。 想要告诉你的是&#xff0c;你觉得你自己一无所长&#…

Java 8 CompletableFuture 学习及实践笔记

CompletableFuture 学习及实践笔记 CompletableFuture 是 Java 8 引入的一个强大的异步编程工具&#xff0c;它提供了一种简洁而灵活的方式来处理异步操作和构建复杂的异步流程。 创建 CompletableFuture 使用 CompletableFuture.supplyAsync(Supplier<U> supplier) 方…

全网最全Python系列教程(非常详细)---字符串讲解(学Python入门必收藏)

&#x1f9e1;&#x1f9e1;&#x1f9e1;这篇是关于Python中字符串的讲解&#xff0c;涉及到以下内容&#xff0c;欢迎点赞和收藏&#xff0c;你点赞和收藏是我更新的动力&#x1f9e1;&#x1f9e1;&#x1f9e1; 本文将从以下几个方面展开对字符串的讲解&#xff1a; 1、字…

如何使用docker快速部署MinDoc文档系统

MinDoc是非常优秀的知识分享系统&#xff0c;但是很多刚接触的人会一脸懵逼&#xff0c;而且官方文档写的也并不清晰&#xff0c;所以和大家分享一下快速部署MinDoc的方法。 首先docker环境先自行安装好&#xff0c;这里不再赘述。 拉取docker镜像&#xff1a; docker pull …

【开发篇】九、SpringBoot整合ES(ElasticSearch)

文章目录 1、整合2、简单示例3、一点补充4、增删改查索引与文档 1、整合 整合思路都一样&#xff0c;先起步依赖或普通依赖&#xff0c;再配置&#xff0c;再封装的操作对象。先引入依赖&#xff1a; <dependency> <groupId>org.springframework.boot</grou…

基于Java的电影评论网站设计与实现

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。今天给大家介绍一篇基于Java的电影评论网站…

IntelliJ IDEA - Maven 在控制台Maven编译正常,但是在IDEA中不正常,表现不一致

文章目录 现象原因解决验证 现象 一个Maven项目&#xff0c;当导入到IDEA后&#xff0c;无法在IDEA中正常的编译和下载jar依赖&#xff0c;类似下面的截图。 但是在Windows控制台却可以正常编译&#xff0c;类似下面的截图。 CMD执行&#xff1a;mvn clean install -Dmaven.te…