C语言学习,从入门到进阶

Posted Jack Chao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言学习,从入门到进阶相关的知识,希望对你有一定的参考价值。

分支和循环

C语言中有三种结构:顺序结构,选择结构,循环结构。
顺序结构

选择结构:

循环结构:

这些图片都很好的说明了这些结构

顺序结构

首先我们来看看顺序结构的代码都长什么样子呢?

#include<stdio.h>
int main()

	int a = 10;
	printf("%d", a);
	return 0;

这样简单的结构就是顺序结构,就是一条线下来就好了。
这个当然不是我们这堂课的重点。

选择语句

那选择语句是什么呢?

#include<stdio.h>
int main()

	int a = 0;
	scanf("%d", &a);
	if (a > 0)
	
		printf("大于0");
	
	else if(a<0)
	
		printf("小于0");
	
	else
	
		printf("等于0");
	
	return 0;

这边的选择结构靠的就是if语句。那我们看看if语句有哪些部分呢?
首先就是if这个单词。然后这个单词后面有一个()这里面的是if语句判断的条件。如果这里面的条件为真就执行if语句里面的语句。那之后的else是什么意思呢?这个是当()这里面的条件不符合的时候执行else里面的语句。
这边有一个地方就是,这个符号能不能删掉呢?答案是可以的,不过删掉之后只会执行之后的一句话。

#include<stdio.h>
int main()

	int a = 10;
	if (a > 0)
		printf("大于0\\n");
	a++;
	printf("%d", a);
	return 0;

这个代码执行之后输出的a是什么呢?答案是11;

#include<stdio.h>
int main()

	int a = -1;
	if (a > 0)
		printf("大于0\\n");
	a++;
	printf("%d", a);
	return 0;

那这个语句执行之后呢?答案是0

#include<stdio.h>
int main()

	int a = -1;
	if (a > 0)
	
		printf("大于0\\n");
		a++;
	
	printf("%d", a);
	return 0;

那这个输出是什么呢?答案是-1;
看到这里,有括号和没括号的区别就出来咯。
但是我希望大家都加一加,为什么呢?
因为这样会让你的代码更有层次感。
当我们if语句()里面有好多条件的时候我们应该怎么办呢?

#include<stdio.h>
int main()

	int a = 0;
	scanf("%d", &a);
	if (60 < a < 100)
	
		printf("合格\\n");
	
	return 0;

是这样吗?当我们输入大于60的数字的时候发现是对的,但当我们输入小于60的时候发现了不对劲。
那这个表达式是怎么运作的呢?
其实60<a<100;这个语句是先运算60<a;当我们输入的数字大于60,这个表达式返回的是真,也就是1;当我们输入小于60的数字的时候,返回的值是假,也就是0;我们发现,不管是1还是0,都是小于100的所以这个代码不对。
那真实的代码是什么呢?

#include<stdio.h>
int main()

	int a = 0;
	scanf("%d", &a);
	if (60 < a &&a<100)
	
		printf("合格\\n");
	
	return 0;

之后我们来检验一下大家的学习成果:

#include<stdio.h>
int main()

	int a = 0;
	int b = 2;
	if (a == 1)
	
		if (b == 2)
			printf("hehe\\n");
	else
		printf("haha");
	return 0;

这个代码的返回值是什么呢?
大家是不是有点疑惑了;
那我把代码改一改

#include<stdio.h>
int main()

	int a = 0;
	int b = 2;
	if (a == 1)
	
		if (b == 2)
		
			printf("hehe");
		
		else
		
			printf("haha");
		
	

这样是不是清晰一点了,所以大家还是多写写大括号吧。
在代码风格上其实大家都有大家的习惯,但是简洁一点还是好的。
还有一种语句就是switch——case——defalute;

#include<stdio.h>
int main()

	int n = 0;
	scanf("%d", &n);
	switch (n)
	
		case 1:
			printf("星期一");
			break;
		case 2:
			printf("星期二");
			break;
		case 3:
			printf("星期三");
			break;
		case 4:
			printf("星期四");
			break;
		case 5:
			printf("星期五");
			break;
		case 6:
			printf("星期六");
			break;
		case 7:
			printf("星期日");
			break;
		default:
			printf("输入异常");
			break;
	
	return 0;

这个语句有一个比较注意的点就是break;语句运行的时候,直到运行到break;才会跳出。

循环语句

循环语句有三种
1:for循环:

#include<stdio.h>
int main()

	int i = 0;
	for (i = 0; i < 100; i++)
	
		if (i % 2 == 1)
		
			printf("%d ", i);
		
	
	return 0;

for循环有哪些组成部分呢?
首先是for这个单词,之后就是()这个括号里面有三个组成部分,他们被 ;分开那么第一个条件就是,第一个部分循环开始的位置,第二个部分是循环结束的条件,第三个部分是循环是怎么进行的。
循环里面的语句是在第二个部分结果为真的情况下执行的。

2:while循环:

#include<stdio.h>
int main()

	int a = 0;
	while (a<10)
	
		printf("%d ", a);
		a++;
	
	return 0;

那while循环有哪些部分呢?
while的部分其实和if语句很像。
都是while这个单词开头,()里面是循环条件,如果条件为假就跳出循环,如果为真就执行循环。里面是执行的语句。
这个循环如果不注意的话很有可能会死循环。

3:do——while
这个循环跟while很像

#include<stdio.h>
int main()

	int a = 0;
	do
	
		printf("%d ", a);
		a++;
	 while (a < 10);
	return 0;

不过要注意的是while后面有个;这个分号别忘了;
do循环和while循环最大的差距就是,do至少实现一次,while又可能一次不实现。
在了解循环的时候我们还要了解两个单词:break和continue;

#include<stdio.h>
int main()

	int a = 1;
	while (a < 10)
	
		if (a % 3 == 0)
		
			break;
		
		printf("%d ", a);
		a++;
	
	return 0;

#include<stdio.h>
int main()

	int a = 1;
	while (a < 10)
	
		if (a % 3 == 0)
		
			continue;
		
		printf("%d ", a);
		a++;
	
	return 0;

这两个代码是有不同的,当然我们不仔细看是看不出来的:
因为两个的输出很像
让我们来看看结果


两张图片分别是两个代码执行之后的结果。
输出的都是1 2;
但其实两个是不一样的,因为第二个死循环了。
break是什么意思百度翻译一下:打破
意思是打破循环,当到break的时候,这个循环就被打破了;
continue是什么意思呢:持续
意思是循环还在,只不过continue之后的语句不再实现而已。
大家要仔细区分这两个语句的意思。

以上是关于C语言学习,从入门到进阶的主要内容,如果未能解决你的问题,请参考以下文章

C语言学习 从入门到进阶

C语言学习,从入门到进阶系列

C语言学习,从入门到进阶系列

C语言学习 从入门到进阶

C语言学习 从入门到进阶

C语言学习 从入门到进阶