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语言学习,从入门到进阶