C语言学习笔记

一、什么是控制语句

控制语句即用来实现对程序流程的选择、循环、转向和返回等进行控制。C语言中共有9种控制语句,包括32个关键字,可以分为"选择语句“,”循环语句“,”转向语句“,”返回语句“四类。

(1). 条件判断语句 if语句、switch语句;
(2).循环执行语句 do while语句、while语句、for语句;
(3).转向语句 break语句、continue语句、return语句、goto语句。

二、条件判断语句

if-else

bool和条件符号

bool
bool flag=0;//可以把bool看作一个只有0和1两个值的数据类型
1.还可以接:true、false和其他非“0”值。
2.只有接:false和0表示:0,其他值其实都是:1
3.在输出时候使用“%d”即可。
条件符号
1.“==”:表示“等于”;
比如,表达式:
3= =3相当于一个值:1
4= =3相当于一个值:0

2.“>"、"<"、">="、"<=":和实际意义相同;
跟上一个一样,当判断成立的时候就表达:1;不成立就是:0

3."!":表示取非;
比如:
"!0"就表示:1;!(2= =3)也表示:1
"!false"也是1.

4.“&&“符号表示:并;”||“符号表示:或。

if-else语句讲解

在if中进行判断,如果,判断成立则执行if中的语句块;否则,执行else中的语句块。
注意:条件之间需要连接符号&&和||
比如:if(0<a<6){} s是错误的!,一定要表达为:if(0<a&&a<6)

代码格式

//代码不写全了,没有头文件和int main()主函数入口,之后也是
	bool sign=0,flag=true,wrong=false;
	if(!sign){
		printf("这里会执行\n");
	}
	if(flag){
		printf("这里会执行\n");
	}
	if(!wrong){
		printf("%d\n",wrong);//这里会执行,且输出:0
	}
	if(!(3==4)){
		printf("这里会执行");
	}

执行结果:

这里会执行
这里会执行
0
这里会执行

备注:
if(判断){代码块}
else if(判断){代码块}

else if(判断){代码块}
else{代码块}
一次的判断每一个if/else if 的条件直到寻找到满足的执行,然后跳出整个判断。如果找不到就执行else的代码块。所有的else if或者else语句块可以没有。

switch-case

讲解

1.switch可以加数字、字符、常整型表达式;字符要加单引号。但是实际上:字符(按照ascii码表转换数字)、宏定义本质上都是以数字的形式去判断的。
注意:(以数字为例)
当某一个case语句后是该数字满足时将会执行case语句之后的所有语句,包括下一个case语句的内容和最后default语句的内容,除非使用break语句跳出整个switch语句。

2.break语句之后再讲,default是在case之后没有判断成立的数字时执行的语句,也可以不定义,但是习惯上最好加上。

代码格式

	int sign=0,flag=2;
	switch (flag)
	{
		case 2:
			printf("这里会输出!\n");
		case 3:
			printf("因为没有break语句,这里也会输出!\n");
		default:
			printf("因为没有break语句,这里也会输出!\n");
	}
	switch (sign)
	{
		case 1:
			//不满足,不会从这里执行 
		default:
			printf("因为不存在满足的数字,所以执行default的内容!\n");
	}

执行结果:

这里会输出!
因为没有break语句,这里也会输出!
因为没有break语句,这里也会输出!
因为不存在满足的数字,所以执行default的内容!

三、循环执行语句

do-while和while解释

while先判断条件是否为真(参考if语句),如果是真,则执行,每执行一次判断,直到不满足为止。
do-while语句先执行再判断,也就是至少执行一次。

代码格式

	int flag1=0,flag2=0,flag3=0;
	do{
		printf("先执行DO中的内容!\n");
		flag1=flag1+1; 
	}
	while(flag1<3);
	
	while(flag2<3){
		printf("先判断后执行!\n");
		flag2=flag2+1;
	}
	
	//就算不成立,也执行了一次 
	do{
		printf("先执行DO中的内容!\n");
	}
	while(flag3==1);

执行结果:

先执行DO中的内容!
先执行DO中的内容!
先执行DO中的内容!
先判断后执行!
先判断后执行!
先判断后执行!
先执行DO中的内容!

for

for(表达式1;表达式2;表达式3)
表达式1:可以有0-n个,通常是定义一个常数作为循环次数
eg:int i=0;这个i只能在for语句块中使用。
表达式2:通常是一个判断语句(类比if语句的),先执行判断,如果判断成功,就执行,不成功则跳出for循环。
表达式3:可以有0-n个,通常是对判断的值进行改变,使得循环可以跳出。

代码格式

	for( ; ;) 
	{
		printf("123\n");
		break;//为了避免一直打印123,跳出循环,之后会讲
	}
	int i=0;
	for(int i=3;i<5;i++)
	{
		printf("%d\n",i);//打印出的值是for语句中的i值
	}
	printf("%d",i);

执行结果:

123
3
4
0

当第一个表达式没有定义的时候,也可以直接调用在for外面定义的变量。

四、转向语句

break与continue

break:结束当前的整个语句块并且跳出循环(如果存在的话)。
continue:结束当前的语句块,如果存在循环不会跳出,会开始进行下一次判断。
刚刚试了一下,在do-while语句中使用continue语句不会使得判断是否进行下一次执行该语句块的语句被跳过。说明:continue只是跳除了当前的代码块,对于代码块之后的所有内容不会产生影响,注意:两个语句都是对当前影响,对于层次的语句结构影响的效果,可以自行试一试。

	int i=0;
	do{
		printf("12\n");
		i++;
		break;
	}
	while(i<5);
	for(int i=0;i<4;i++){
		for(int j=0;j<4;j++){
			printf("%d内层\n",j);
			break;//实际上只会输出一个 
		}
		printf("%d外层\n",i);
		continue;
		printf("这一句不会输出\n");
	}

执行结果:

12
0内层
0外层
0内层
1外层
0内层
2外层
0内层
3外层

return与goto

return:是指返回一个值,用于函数的退出返回一个返回值,之后函数会讲到。
注意:我们定义的int main()主函数也是需要一个“int”类型的返回值的,之前都没有加上。
goto:语句用来返回之前标记的位置。

	int j=0;
	loop:
		j++;
		printf("j:%d\n",j);
	for(int i=0;i<=2;i++){
		printf("%dfor循环\n",i);
	}
	if(j<2){
		goto loop;
	}
	else{
		goto end;
	}
	printf("不会输出!\n");
	end:
		printf("结束\n");
	return 0;
j:1
0for循环
1for循环
2for循环
j:2
0for循环
1for循环
2for循环
结束

备注:
1.这里的loop和end就是一个标志,名字可以自己取。
2.goto语句容易造成语句的条理被打乱,当代码量很大的时候建议少使用。(其他博主那里看到的,我的代码量暂时还没有到达过。。。。)

五、写在最后

加一个exit()

exit(0);
表示退出程序,参数0表示正常退出,在任何地方使用会退出整个程序。
有关于进程、线程等等的相关知识可以看看《操作系统》。

结语

现在的内容对接触过的人都比较简单,哈哈,来得很快。但是之后事情比较多,之后肯定就慢下来了。如果有幸能和刚刚接触高级编程语言的同学一起学习,建议速度慢下来,稳扎稳打,自己多写写才是最重要的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值