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
。
本文作者:Lavender-edgar
本文链接:https://www.cnblogs.com/Lavender-edgar/p/17056669.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步