总的来说,涉及两个选择(if,switch)三个循环(while,do...while,for),这些都是要熟知的关键词,下面来依次介绍。
if语句
单分支选择结构:if(表达式)语句A
双分支选择结构:if(表达式)语句1
else 语句2
多分支选择结构:if(表达式1)语句1
else if(表示式2) 语句2
else if(表达式m)语句m
else 语句m+1
在语法上只允许每个分支带一条语句,多条语句需要使用花括号。举几个简单的例子:
#include<stdio.h>
int main()
{
int a,b,max;
scanf("%d,%d",&a,&b);
if(a>b)
max=a;
if(a<b)
max=b;
printf("max=%d",max);
return 0;
}
#include<stdio.h>
int main()
{
int a,b,max;
scanf("%d,%d",&a,&b);
if(a>b)
max=a;
else
max=b;
printf("max=%d",max);
return 0;
}
#include<stdio.h>
int main()
{
int a,b,max;
scanf("%d,%d",&a,&b);
if(a>b)
{
max=a;
printf("%d\n",a);
}
else if(a<b)
{
max=b;
printf("%d\n",b);
}
else
max=a;//max=b
printf("max=%d",max);
return 0;
}
此外在双分支中,除了用if-else,还可以用条件运算符(C语言唯一的一个三元运算符),上面的例子就可以改为这样:
#include<stdio.h>
int main()
{
int a,b,max;
scanf("%d,%d",&a,&b);
printf("max=%d",max=a>b?a:b);
return 0;
}
switch语句
switch语句适用于情况较多的时候,一般形式如下:
switch(表达式)
{
case 常量1:
可执行语句1;
case 常量2:
可执行语句2;
case 常量n:
可执行语句n;
default :
可执行语句n+1;
}
用switch语句必须注意表达式必须为char型或int型,且在每个可执行语句后都要加break
如果没有 一直运行到有break为止。
#include<stdio.h>
int main()
{
int a;
scanf("%d",&a);
switch(a%2)
{
case 0:
printf("这个数是偶数\n");
break;
case 1:
printf("这个数是奇数\n");
break;
}
return 0;
}
总之这两个分支语句可以嵌套调用。
while循环
其形式为:
while(循环控制表达式)
{
语句序列
}
循环控制表达式的值为真(值为1)则执行语句,为假(值为0)则跳出循环
在语句中添加条件可控制循环次数,切记误入死循环。
#include<stdio.h>
int main()
{
int a=10;
while(a>=0)
{
printf("haha\n");
a--;
}
return 0;
}
在某些情况下可用break跳出循环。
do...while循环
其形式为:
do
{
语句序列
}while(循环控制表达式);
这个循环的表达式无论为真或为假,至少运行一次。
for循环
其形式为:
for(初始化表达式;循环控制表达式;增值表达式) 初始化表达式;
{ for(;循环控制表达式;增值表达式)
语句序列 或 {
语句序列
} }
或
初始化表达式;
for(;循环表达式;)
{
语句序列
增值表达式;
}
for语句中表达式之间的分隔符是分号,有且只有两个。for语句可用while语句等价实现。
在for(;;)后加;会导致循环什么也不做,只起延时作用。
#include<stdio.h>
int main()
{
int i,n;
long p=1;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
p=p*i;
}
printf("%d!=%ld\n",n,p);
return 0;
}
学会循环和分支,会解决较多问题如累加,累乘,有规律的问题等等。
以上就是我总结的内容了,可能有哪些知识未写到,感谢读者花费时间阅读我的文章。如果文章有问题,欢迎随时与我分享。让我们一起努力吧。