-
一,分支
- 分支也是选择,我们通过自己所设想的情况为一条语句的执行进行判断,那么我们就把这些所有的判断条件以及所设想的可能情况通过一条或者多条语句进行选择来执行我们所设想的效果。
-
类别
-
(一)if分支语句(单分支语句)
下面是常见的if单分支语句,你可以自行在其中添加所判断的条件和执行语句。
if(条件句)
{
执行语句;
}
else //与之所加条件相反
{
执行语句;
}
同时我们还要注意:else一般都跟着同一级的if条件句,下面举一个例子:
if(a>b)
if(a>c)
max=a;
else
max=c;
else
max=b;
这里我们可以通过添加花括号的形式方便自己的区分:
if(a>b)
{
if(a>c)
max=a;
else
max=c;
}
else
{
max=b;
}
因为每个if与else语句都会与其最近的一级相匹配,所以我们在敲代码的时候一定要注意区分。
注意:if后括号里的判断句中不能为赋值语句(如:a=b),应改为(a==b)
(二)switch语句(多分支语句)
如果if嵌套的多层选择令你感到头大,你可以试试switch或许会更加方便。
switch语句一般为:
switch(表达式)
{
case 常量1 ;语句1
case 常量2 ;语句2
case 常量3 ;语句3
case 常量4 ;语句4
列如,我们可以通过switch语句去进行学生分数的分类。
#include<stdio.h>
int main()
{
int score;
scanf("%d",&score);
score=score/10;
switch(score)
{
case 9:printf("A");break;
case 8:printf("A");break;
case 7:printf("B");break;
case 6:printf("C");break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:printf("D");break;default:printf("出错了");break;
}
return 0;
}
注意:1.break是用来跳出此次结果的。如果不跳出,会继续向下执行,直到跳出或者花括号完结。
2.default是除了case的所有情况,一般我们都要加上去,防止自己写完代码出错不知如何检查。
二,循环
如果你要对同一个问题多次进行探索,那么你可以去利用循环的方式去对一个问题解决并套用多层循环重复对这个问题进行解决从而达到我们想要的效果。
类别
(一)while循环
while(表达式)
{
语句;
}
表达式即为判断条件并且0为假!0为真。
Eg:用while循环打印n=100的阶乘
#include<stdio.h>
int main()
{
int n=1,y=0;
while(n<=100)
{
y=n*y;
n++;
}
printf("%d",&y);
return 0;
}
这就是while的用法,其实,我们还有一种用法就是先执行在进行判断
do
{
语句;
}
while(表达式)
与上面用法不一致的是这次会先去执行括号里面的语句之后在进行while里面表达式的判断。
注意:while括号里面的判断若为0则为假,!0为真
(二)for循环
for循环的一般语句的形式为:
for(表达式1;表达式2;表达式3)
{
所要执行语句;
}
其中:
1.表达式1里面一般为赋值语句,我们可以在里面进行常量的定义。
2.表达式2里面一般为判断语句,我们将数据的比较放进去。
3.表达式3里面一般为所想要改变的表达式,比如:i++,g--等。
Eg:我们想要去打印1~100的数字
#include<stdio.h>
int main()
{
int i = 1;
for (i = 1; i <= 100; i++)
{
printf("%d\t", i);
}
return 0;
}
这就是我们for循环的利用,同时我们其实可以通过多层循环去完成一些较为复杂的代码
Eg:现在想要去打印99乘法口诀表
#include<stdio.h>
int main()
{
int i,j;
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
{
int n = i*j;
printf("%d*%d=%d\t",i,j,n);
}
printf("\n");
}
return 0;
}
这就是多层循环嵌套。
注意:1.我们在循环里面还有一些其余关键字的调用,比如:continue(跳出本次循环去执行下次循环),break(跳出循环,提前终止该循环),goto(跳转到?)。
2.在使用时我们要注意条件一般是0为假,!0为真。