C语言基础--逻辑判断和循环
一、储存标识符
在C语言中都会对每个变量的储存位置做一个标记,开发人员可以对每个变量设置一个储存标识符,这样就可以让每个变量存放在一个内存区进行使用。
1.auto
auto 是一个默认的修饰符,这个标识符是标识将变量存放入栈空间中,当这个函数使用完后会自动释放。
使用方法:
auto int a = 6;
2.register
register 能让声明的变量使用时的运行速度变快,将变量放置在缓冲区中,使用时会更方便,但是由于现在的CPU的运行速度变快,这个修饰符使用的频率比较低。
使用方法:
register int a = 6;
3.static
static 是将声明的变量放在静态区中,静态区的内容需要手动进行释放才可以,没办法在函数结束后释放,程序结束可以释放。
使用方法:
static int a = 6;
一般对于这个修饰符的使用是在函数计数,例如判断一个这个函数的调用次数:
void test(){
static int a = 0;
a++;
printf("%d", a);
}
int main(){
test();
test();
test();
test();
return 1;
}
4.const
const 是将可变的内容改变为不可变的内容,使用的频率非常高。
使用方法:
const int a = 6;
二、运算符
1.逻辑运算符
&&:逻辑与 看见0就为0
||:逻辑或 看见1就为1
!:逻辑非 0变1 1变0
2.位运算符
&:按位与 看见0就为0
|:按位或 看见1就为1
~:按位非 0变1 1变0
^:按位异或 相同就为0,不同就为1
<<:左移运算符
>>:右移运算符
3.运算符
+ - * / %
前++ 前-- 后++ 后--
前++ 前-- 先执行自增或者自减的操作然后再执行其它语句
后++ 后-- 先执行其它语句,再自增或者自减
4.三元运算符
(你需要判断的条件)?执行语句1:执行语句2;
例子:判断大小
char a = 10;
char b = 20;
(a > b)?printf("%d", a) : printf("%d", b);
char a = 10;
char b = 20;
int max = (a > b)?a : b;
三、选择结构
其实就是判断
C语言中没有布尔类型,0表示假,1表示真
1.if判断
判断一个范围
语法:
第一种语法:主要用作执行多条语句
if (逻辑表达式/整形){
需要执行的内容
}
else if (逻辑表达式/整形){
需要执行的内容
}
else{
需要执行的内容
}
第二种写法:主要用作与执行一条语句
if (逻辑表达式/整形)
需要执行的内容
else if (逻辑表达式/整形)
需要执行的内容
else
需要执行的内容
这里只能执行一条语句,不能写多条
1.1 if的嵌套
本质上就是if中嵌套一个if
if (逻辑表达式/整形){
if (逻辑表达式/整形){
需要执行的内容
}
else if (逻辑表达式/整形){
需要执行的内容
}
else{
需要执行的内容
}
}
else if (逻辑表达式/整形){
if (逻辑表达式/整形){
需要执行的内容
}
else if (逻辑表达式/整形){
需要执行的内容
}
else{
需要执行的内容
}
}
else{
if (逻辑表达式/整形){
需要执行的内容
}
else if (逻辑表达式/整形){
需要执行的内容
}
else{
需要执行的内容
}
}
2.switch语句
判断固定值
语法:
switch(变量){
case 具体值:
你要执行的语句
case 具体值:
你要执行的语句
default:
你要执行的语句
}
2.1 switch的特色
当你需要比较的内容和一个case匹配了后,它会把匹配的case下不匹配的case中需要执行的内容一起执行
如何解决switch的特色?
需要添加 break 进行解决。
2.2 switch实现判断范围
int a = 5;
switch(0 < a && a < 10){
case 1:
switch(0 <= a && a < 5){
case 1:
printf("0-5");
break;
case 0:
printf("5-10");
break;
}
break;
case 0:
printf("no");
break;
}
四、循环结构
1.for循环
语法:
for (第一次进入for循环时执行的内容①; 条件判断②; 执行完一次for循环后执行的内容③){
循环体1;
循环体2;
循环体3;④
.......
}
执行顺序:①-> ②-> ④-> ③-> ②-> ④
另外一种语法:相当于死循环
for ( ; ; ){
循环体1;
循环体2;
循环体3;④
.......
}
例子一:打印1到100中所有的内容
通用写法
int i;
for (i = 0; i < 101; i++){
printf("%d\n", i);
}
C++的写法:
for (int i = 0; i < 101; i++){
printf("%d\n", i);
}
例子二:打印九九乘法表
int i = 0, j = 0;
for (i = 0; i < 9; i++){
for (j = 0; j <= i; j++){
printf("%d*%d=%d\t", j + 1, i + 1, (j+1)*(i+1));
}
printf("\n");
}
3.while循环
语法:
while(逻辑表达式/整形){
循环体1;
循环体2;
循环体3;④
.......
}
例子:九九乘法表
int i = 0, j = 0;
while(i < 9) {
j = 0;
while(j <= i){
printf("%d*%d=%d\t", j + 1, i + 1, (j + 1)*(i + 1));
j++;
}
i++;
printf("\n");
}
4.do-while循环
语法:
do{
循环体1;
循环体2;
循环体3;④
.......
}while(逻辑表达式/整形);
4.1do-while 和 while的区别
while需要条件满足才执行循环体内的语句
do-while 先执行一遍循环体内的语句,然后再判断while括号内的条件
例子:九九乘法表
int i = 0, j = 0;
do{
j = 0;
do{
printf("%d*%d=%d\t", j + 1, i + 1, (j + 1)*(i + 1));
}while(++j <= i);
printf("\n");
}while(++i < 9);
5.break 和 continue
break:跳出当前循环
continue:跳过一次循环
5.1 理解break和continue
就比如你是一家公司的网络开发人员,终于到你年假了,你很开心的买机票去海边玩,但是老板说,每天9点我可能会给你打个电话,然后你对你自己的规划如下:
起床-->等电话
等电话-->去海边玩
去海边玩-->睡觉
睡觉-->起床
然后某一天,你们老板给你打了个电话,告诉你需要快点回来,服务器崩了,你就得结束你的假期回去维护服务器,这个电话相当于是 break ,跳出这个假期的循环
如果有一天你们老板给你说让你远程调一下一个内容,那你不需要结束你今天的假期,只需要花一天的时间去修改一下代码,明天继续度假,这个电话相当于是 continue 。
C语言基础--逻辑判断和循环的更多相关文章
- C语言基础知识【循环】
C 循环1.有的时候,我们可能需要多次执行同一块代码.一般情况下,语句是按顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推.编程语言提供了更为复杂执行路径的多种控制结构.循环语句允许我 ...
- C语言基础之for循环的使用
一.for循环格式. 1: for (语句1; 条件; 语句2) 2: 3: { 4: 5: 循环体 6: 7: } 8: 9: 具体: 10: 11: 语句1:初始化语句 12: ...
- GO语言-基础语法:循环
golang只有for没有while package main import ( "fmt" "os" "bufio" ) func for ...
- go语言基础之for循环
1.for 的用法 示例: package main //必须有一个main包 import "fmt" func main() { //for 初始化条件 ; 判断条件 ; 条件 ...
- 【C语言基础】unsigned short类型用于循环的一个难点
我在我的知识星球:“C语言解惑课堂”里的第一篇提出一个问题:[第1篇][C语言基础][unsigned short类型用于循环的一个难点]要查看更多的C语言难点解析或者需要提问的同学,微信扫扫文末我的 ...
- [08 Go语言基础-for循环]
[08 Go语言基础-for循环] 循环 循环语句是用来重复执行某一段代码. for 是 Go 语言唯一的循环语句.Go 语言中并没有其他语言比如 C 语言中的 while 和 do while 循环 ...
- 【quick-cocos2d-x】Lua 语言基础
版权声明:本文为博主原创文章,转载请注明出处. 使用quick-x开发游戏有两年时间了,quick-x是cocos2d-Lua的一个豪华升级版的框架,使用Lua编程.相比于C++,lua的开发确实快速 ...
- C语言基础回顾
第一章 C语言基础 1. C语言编译过程 预处理:宏替换.条件编译.头文件包含.特殊符号 编译.优化:翻译并优化成等价的中间代码表示或汇编代码 汇编:生成目标文件,及与源程序等效的目标的机器语言代码 ...
- 黑马程序员_ C语言基础(二)
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 概览 今天基础知识分为以下几点内容(注意:循环.条件语句在此不再赘述): 1.Hello W ...
- Java学习总结(二)----Java语言基础
1. Java语言基础 2.1 关键字 定义:被java语言赋予特殊含义的单词 特点:关键字中的字母都为小写 用于定义数据类型的关键字 class,interface,byte,short,i ...
随机推荐
- C++ 基于libbfd实现二进制加载器
构建工具解析二进制文件,基于libbfd实现,提取符号和节 BFD库 文档参考: LIB BFD, the Binary File Descriptor Library BFD及Binary File ...
- Nginx 面试题总结大全
转载请注明出处: 1 介绍下nginx特点与常用模块 2 nginx特点详细 3 反向代理和正向代理 4 负载均衡策略有哪些 5 Nginx如何实现动静分离? 6 Nginx 常用命令有哪些? 7 ...
- Go函数基础
在Go语言中,函数是一种基本的代码组织方式.函数能够接受输入参数并返回结果.Go语言中的函数有以下特点: 函数定义使用关键字func,后跟函数名.参数列表和返回值类型. 如果函数有返回值,则在函数定义 ...
- Layui 2.8.0 正式发布,官网全新文档站朴实归来
前言 两年前 Layui 官网宣布了下线声明,说实话当时内心确实感慨万千毕竟这个免费为我们后端程序员提供的一个前端快熟开发框架的官网就这样下线了确实十分的惋惜,但是庆幸的是官网的下线,只是单纯一个网站 ...
- CD的认知与学习
cd命令的作用 ●ls可以理解成当前而cd是切换到那一层 ls查看当前目录下的所有文件(不包含隐藏): ls /查看/下的所有文件 cd 切换到哪个文件下 pwd命令的作用 通过ls来验证当前的工作目 ...
- Go windows 环境搭建
下载地址 官网下载地址:https://golang.google.cn/dl/ 1.下载完之后 双击msi进行安装 路径可以不用改, 继续next 安装完之后就需要配置环境变量, 找到环境变量 GO ...
- 2022-12-30:某天小美进入了一个迷宫探险,根据地图所示,这个迷宫里有无数个房间 序号分别为1、2、3、...入口房间的序号为1 任意序号为正整数x的房间,都与序号 2*x 和 2*x + 1
2022-12-30:某天小美进入了一个迷宫探险,根据地图所示,这个迷宫里有无数个房间 序号分别为1.2.3.-入口房间的序号为1 任意序号为正整数x的房间,都与序号 2x 和 2x + 1 的房间之 ...
- 2022-07-05:给定一个数组,想随时查询任何范围上的最大值。 如果只是根据初始数组建立、并且以后没有修改, 那么RMQ方法比线段树方法好实现,时间复杂度O(N*logN),额外空间复杂度O(N*
2022-07-05:给定一个数组,想随时查询任何范围上的最大值. 如果只是根据初始数组建立.并且以后没有修改, 那么RMQ方法比线段树方法好实现,时间复杂度O(NlogN),额外空间复杂度O(Nlo ...
- 2022-05-08:给你一个下标从 0 开始的字符串数组 words 。每个字符串都只包含 小写英文字母 。words 中任意一个子串中,每个字母都至多只出现一次。 如果通过以下操作之一,我们可以
2022-05-08:给你一个下标从 0 开始的字符串数组 words .每个字符串都只包含 小写英文字母 .words 中任意一个子串中,每个字母都至多只出现一次. 如果通过以下操作之一,我们可以从 ...
- 分类树,我从2s优化到0.1s
前言 Java技术突击网站:http://www.susan.net.cn 分类树查询功能,在各个业务系统中可以说随处可见,特别是在电商系统中. 但就是这样一个简单的分类树查询功能,我们却优化了5次. ...