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语言学习,从入门到进阶的主要内容,如果未能解决你的问题,请参考以下文章