C语言语句有三种经典结构,这里介绍一下分支和循环语句。
1.分支语句
分支语句分为两种,if语句和switch语句。首先介绍if语句。
1)if语句
if语句使用比较简单
if(表达式)表达式结果为真就执行下面的语句,为假则不执行,0为假,非0为真
C语句;
后跟一条语句即可,需要注意的是,if后只有一条语句会生效,如果要使多个语句生效,需要使用{}将语句括起来。若有多个条件需要判断,直接写多个if即可。
if很多时候会与else一起出现。
if(表达式)
C语句;
else
C语句;
就像这样,也可使用大括号{}。有一点要注意,当有多个if语句并列时,else会与离else最近且未匹配的if匹配,比如
#include<stdio.h>
int main()
{
int a, b;
char c;
scanf("%d %c %d", &a, &c, &b);
if (c == '+')
printf("%d", a + b);
if (c == '-')
printf("%d", a - b);
if (c == '*')
printf("%d", a * b);
if (c == '/')
printf("%d", a / b);
else
printf("%d", a % b);
return 0;
}
这段代码想表达的是c不等于+,-,*,/中的任何一个时就是取余运算,但是,最后效果并非如此,else会与离else最近且未匹配的if匹配,所以这题输入不是'/'就会走else。
就像这样,c被赋值了'w',但也输出了余数。
2)switch语句
基本语法结构如下
switch(变量)
{
case 常量1:
case 常量2:
}
该语句意为根据switch后的变量,来选择进入哪一个case语句,例如
#include<stdio.h>
int main()
{
int n = 1;
switch (n)
{
case 1:
printf("%d\n", n);
case 2:
printf("%d\n", n + 1);
case 3:
printf("%d\n", n + 2);
}
}
这里n被赋值为了1,那么就会走case 1语句,看下效果
确实打印了1,但是后面是什么鬼?
switch语句往往会与break搭配使用,就是为了避免这种情况。break可以阻止case语句不停向下执行。如果上面那段代码加上break,结果就不一样了
#include<stdio.h>
int main()
{
int n = 1;
switch (n)
{
case 1:
printf("%d\n", n);
break;
case 2:
printf("%d\n", n + 1);
break;
case 3:
printf("%d\n", n + 2);
break;
}
}
---------------------------------------------------------------------------------------------------------------------------------
另外,有可能输入的n不是case对应的任何一个值,这时会使用default,case都不对应的值会执行default子句。
#include<stdio.h>
int main()
{
int n = 4;
switch (n)
{
case 1:
printf("%d\n", n);
break;
case 2:
printf("%d\n", n + 1);
break;
case 3:
printf("%d\n", n + 2);
default:
printf("no\n");
break;
}
}
switch语句一定记住,只有遇到break才会在中途停止,否则会一直向下执行,default也不例外。
还有,default不一定在末尾。
2.循环语句
循环在C语言中有三种,分别是while循环,for循环和do while循环。
语法上其实相差不大,接受一个就很容易理解其他两个。
while(表达式)
{
C语句;
}
表达式就是循环需要满足的条件,大括号里就是循环要执行的具体内容。
for(变量初始化;满足条件;一次循环后要执行的内容)
{
}
这就是for循环
do{
}while(表达式);
do while循环的while后面是需要加分号的,这点注意。
这就是循环的基本框架。
943

被折叠的 条评论
为什么被折叠?



