各位优秀的程序员们,大家好,上次给大家写了一点自己对C语言入门的大概括,这次再往里面细讲一点点,讲究循循渐进,文中有错误的,不足的希望能得到指正和教导,谢谢!
1. 关于语句
C语句一共有五类:
1.表达式语句 由表达式加上分号“;”组成,z = x+y;
2.函数调用语句 就简单的调用一个函数 rand();
3.控制语句 控制程序执行流程,让程序按照其不同控制结构去执行
4.复合语句 用大括号{},将众多语句和声明包在一起
5.空语句 不需要执行其功能 只需要 ; 即可
我们初学者,最主要了解的就是控制语句,分成三类:
1.分支语句:if语句,switch语句;
2.循环语句:do while语句,while语句,for语句
3.转向语句:break语句,continue语句
那么下面来介绍这些语句。
2. 分支语句
if语句:
if(表达式){
语句;
}
int num1 = 8;
int num2 = 10;
if (num1<num2) {
printf("%d", num2); //10
}
else {
printf("%d", num1);
}
if语句常和else搭配,如果条件满足if就会执行if里面的语句,如果不满足就直接执行了else语句。
多分支if语句
if语句还可以进行多条语句判断
if () { //条件满足if时,就会执行if,
printf();
}
else if () { //不满足if时,会进行else if语句判断,满足就执行
printf();
}
else { //以上都不满足,就会执行此语句
printf();
}
else if语句可以多次使用,来满足程序要求。
当程序进入了一条语句中,其他语句不会再执行。
switch语句
switch(整型表达式)
{
语句项;
}
int a = 1;
switch (a) {
case 1:
printf("我是case1\n");
case 2:
printf("我是case2\n");
default:
printf("我是default\n");
}
//我是case1
//我是case2
//我是default
当程序进入一个入口时,就会依次执行下面的,直到语句结束,或者遇到break结束语句跳出来。
当switch语句遇到break时:
int a = 1;
switch (a) {
case 1:
printf("我是case1\n");
break;
case 2:
printf("我是case2\n");
break;
default:
printf("我是default\n");
break;
}
// 我是case1
程序只会执行case 1后就跳出来,
关于 default
这个类似于if语句中的else, 如果上面的case;都不满足,就会执行default;
3. 循环语句
while语句
适用于同一件事情我们需要完成很多次
while(表达式) {
循环语句;
}
int w = 1;
while (w) {
printf("");
}
当表达式为真时,while会进入循环。只有在循环体内设置条件调整使其不满足表达式或者 遇到break才会跳出循环。
当while语句遇到break
int w = 1;
while (w<=10) {
if (w == 8) break;
printf("%d",w);
w++;
}
// 1234567
可见遇到break;直接终止循环
当while语句遇上continue
continue:是跳过本次循环,进行下一次循环。
int w = 1;
while (w <= 10) {
if (w == 5) continue;
printf("%d", w);
w++;
}
// 1234
因为w等于5后,进入了if语句后,执行了continue,跳过了下面的代码,导致w一直等于5,卡在这里。把w++调整到if语句上面即可。
for语句
for(表达式1; 表达式2; 表达式3){
循环语句;
}
表达式1为初始化部分,用于初始化循环变量的。
表达式2为条件判断部分,用于判断循环时候终止。
表达式3为调整部分,用于循环条件的调整
for语句类似于if语句
且看:
int a = 0 //变量的声明
if(a == 0){ //条件判断
; //条件调整和功能
}
for语句只是把三者集合在一起。
//进行一个遍历
int a = 1;
for(a = 1;a<=10;a++){
printf("&d ",a) //1 2 3 4 5 6 7 8 9 10
}
当for语句遇上break
意义和while语句中一样。
int i = 0;
for (i = 1; i <= 10; i++)
{
if (i == 5)
break;
printf("%d ", i); //1 2 3 4
}
遇上break后直接终结循环。
当for语句遇上continue
int i = 0;
for (i = 1; i <= 10; i++)
{
if (i == 5)
continue;
printf("%d ", i); //1 2 3 4 6 7 8 9 10
}
当i等于5时,进入语句执行continue,跳过下面的程序,进行表达式3 条件调整,变成了6继续执行循环。
do while语句
do {
循环语句;
}while(表达式);
do while语句和while语句不同的是,do while语句,上来直接执行一次循环语句,在进行while表达式的判断
循环至少执行一次,使用的场景有限,所以不是经常使用。
int i = 10;
do
{
printf("%d\n", i);
} while (i < 5);
//10
当do while语句遇上break,和continue
do
{
if (5 == i)
break;
printf("%d ", i);
i--;
} while (i < 10);
//10 9 8 7 6
int i = 10;
do
{
i--;
if (5 == i)
continue;
printf("%d ", i);
} while (i>0 && i <10);
//9 8 7 6 4 3 2 1 0
以上是我对分支循环语句的个人理解。
身为初学者,自身有很多不足,希望错误的地方和不足之处能得到指正,感激不尽!!!