目录
二、循环语句(for()…)、(while()…)、(do…while()…)
三、结束本次循环语句(continue)、中止词(break)
一、条件语句(if() … else…..)
if条件语句使得计算机有了选择的方向,而不是一味读写代码。
其中条件语句常用的关系运算符:
1.< (小于)
2.>(大于)
3.<=(小于或等于)
4.>=(大于或等于)
5.==(等于)
6.!=(不等于)
1-4的优先级高于5-6,同优先级的优先程度相同。
例子:三个数的排序问题
int data1;
int data2;
int data3;
int datatru;
puts("请输入三个数");
scanf("%d%d%d",&data1,&data2,&data3);
if(data1>data2)
{
datatru = data2;
data2 = data1;
data1 = datatru;
}
if(data2>data3)
{
datatru = data3;
data3 = data2;
data2 = datatru;
}
if(data1>data2)
{
datatru = data2;
data2 = data1;
data1 = datatru;
}
printf("你输入的三个值大小排序为:%d %d %d",data1,data2,data3);
二、循环语句(for()…)、(while()…)、(do…while()…)
循环语句顾名思义就是重复一段相同的代码或操作。这使得代码更加简洁、更方便程序员的操作。
while循环
while循环语句要包含三个基本的表达式
例如
//循环语句
int i = 0; //第一个表达式,条件的初始值
while(i<10)//第二个表达式,条件的临界值
{
puts("爱你一万年!");
i = i+1;//第三个表达式,条件发生变化
}
do..while循环
如代码段所示,基本结构与while循环一直,但do{}会先执行一遍,无论是否进行循环。
int data = -1;
do{
printf("先执行一遍后进循环\n");
data++;
}while( data == 0);
for循环
for循环的基本结构为for(定义表达式;条件表达式;变量条件表达式){需要执行的代码}
如
for(int a = 10;a;a--){
puts("爱你一万年");
}
三、结束本次循环语句(continue)、中止词(break)
continue是用来结束本次循环;break是用来结束整个循环。
如
//break 的实例
int stu;
float stu1;
int money;
int score;
score = 0;
for (stu =1;stu <= 1000;stu++){
puts("请输入捐款金额");
scanf("%d",&money);
score = money+score;
stu1 = (float)score / stu;
if(score>=100000){break;}
printf("达到10万元时捐款人数为%d,平均每人捐款%7.2f",stu,stu1);
}*/
//continue的实例
int num;
num =100;
while (num<=200){
if(num %3 != 0){
num++;
continue;
}
printf("能被三整除的数是:%d\n",num);
num++;
}
当程序进到break的时候,整个循环体结束。
当程序进到continue时,结束本次循环,并继续循环。
四、多分支选择语句(switch)
stwich语句是用来选择符合条件的代码进行编写。
如学生成绩定义:
int score;
puts("请输入你的分数:");
scanf("%d",&score);
switch (score/10){
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
if(score<0){
printf("请输入合法分数!");
}else {
printf("成绩为E\n");
}
break;
case 6:
printf("成绩为D\n");
break;
case 7:
printf("成绩为C\n");
break;
case 8:
printf("成绩为B\n");
break;
case 9:
case 10:
if(score>100){
printf("请输入合法分数!");
}else {
printf("成绩为A\n");
}
break;
default:
printf("请输入合法的分数!\n");
break;
}
五、流程控制语句的练习
ex1:输入两个正整数,求其最大公约数和最小公倍数
int a;
int b;
int c;
int i;
puts("请输入两个正整数:");
scanf("%d%d",&a,&b);
if(a>b){
c= b;
b=a;
a=c;
}
i = a;
while(i>0){
if(a%i == 0 && b%i == 0){
printf("这个两个数的最大公约数是:%d\n",i);
break;
}
i--;
}
for (i=b;i>0;i++){
if(i %a == 0 && i %b == 0){
printf("这个两数的最小公倍数是:%d\n",i);
break;
}
}
最小公倍数还可以用两数积除最大公约数得。
结果:
ex2:判断一个三位数是不是水仙花数
int s;
int a;
int b;
int c;
puts("请输入一个三位数:");
scanf("%d",&s);
a = s/100;
b = s%100/10;
c = s%10;
if(s==a*a*a+b*b*b+c*c*c){
puts("这是一个水仙花数");
}else{
puts("这不是水仙花数");
}
运行结果如下: