C语言(B站比特鹏哥)笔记

分支语句和循环语句
分支语句(选择结构)

  • if
  • switch

循环语句(循环结构)

  • for
  • while
  • do while

goto语句

C语言中由一个分号;隔开的就是一条语句
C语言中非0就是真

P30 分支语句if else

if语句
语法结构
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
例子

#include <stdio.h>
int main()
{
	int age = 20;
	if(age>=18)
		printf("成年\n");
	else
		printf("未成年\n");
		printf("不能谈恋爱\n");
	return 0;
}

在这里插入图片描述
必须给else加上{ }构成语句块,否则else只能控制到离他最近的一条语句;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注:else是和离他最近的一个没有else的if匹配,而不是看缩进
故上述代码相当于
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
代码1和代码2表达的是一个意思,主要是因为代码1中如果condition成立,return x;之后程序不会再往下执行了
在这里插入图片描述
但是应该注意,如果把return换成printf的话,代码1和代码2 就不一样了

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

P31 分支语句switch

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

default语句写在前面和后面都行

case和break一起使用实现switch语句的分支

注意: case后面必须是整形常量表达式,必须是整形不能是浮点型或其它类型,必须是常量不能是变量,可以是1+2等常量的表达式,字符也属于整形中的一种,因为字符底层存储用的是字符的ASCII码值

例子
在这里插入图片描述
在这里插入图片描述

p32 循环语句while

在这里插入图片描述

在while循环中,break用于永久地终止循环

例子:break
在这里插入图片描述

在while循环中,continue用于跳过本次循环中continue后面的代码,直接去判断部分,看是否进行下一次循环

例子:continue
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

故要清理缓冲区
使用getchar();语句把’\n’先读走

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意:不是空语句;清理的,而是while判断条件里的getchar清理的

getchar原型
int getchar(void);
即返回值是int类型,虽然获取的是字符,但是返回的是字符对应的ASCII码值

例子:写一个程序输出字符’0’-‘9’,其它的不输出
在这里插入图片描述

p34 循环语句for

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意:for循环如果省略判断语句默认恒为真
for循环如果没有调整语句便会陷入死循环
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

P38 循环语句do while

特点:循环体至少执行一次

在这里插入图片描述
在这里插入图片描述
例子
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

P43 goto语句

在这里插入图片描述

goto语句可以随意跳,以上代码陷入死循环

//关机程序
//只要运行起来,电脑就在两分钟之内关机,如果输入:我是猪,就取消关机
//
//shutdown -s -t 120(-s是关机的意思,-t是时间,120是秒)
//shutdown -a取消关机 
#include <stdio.h>
#include <string.h> 
#include <stdlib.h>
int main()
{
	char input[20] = { 0 };
	
	//关机
	//c语言提供了一个函数:sysrtem()-执行系统命令的
	system("shutdown -s -t 120"); 

again:						//goto语句将会跳转到这里来 
	printf("请注意,你的电脑将在2分钟内关机,如果输入:我是猪,就取消关机\n");
	scanf("%s", input);		//数组名就是地址,无需使用&取地址符
	if(strcmp(input, "我是猪") == 0)  //需要引入头文件<string.h> 
	{								//strcmp(str1, str2);如果str1=str2,返回0;>返回整数,<返回负数,比较的是ASCII码 
		system("shutdown -a");		//取消关机的命令,需要引入头文件<stdlib.h> 
	}else{
		goto again;
	} 
	return 0;
 } 

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

goto语句只能在一个函数范围内跳转,不能跨函数
在这里插入图片描述

  • 1
    点赞
  • 5
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:深蓝海洋 设计师:CSDN官方博客 返回首页
评论

打赏作者

你代码出BUG了

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值