C语言的3种结构
选择
if语句
if语句表达式:
if(表达式){
语句1
}
(注:如果表达式为真,则执行语句1,否则跳过语句1)
if_else语句
if_else语句表达式:
if(表达式1){
语句1
}else{
语句2
}
(注:若表达式的值为真,执行语句1,并跳过语句2,继续执行if_else的下一条语句;若表达式为假,跳过语句1,执行语句2,然后继续执行下一条语句。)
嵌套if语句
嵌套1:
if(表达式1)
if(表达式2)语句1
else 语句2
else 语句3
(注:第一个else与第二个if结合,最后一个else与第一个if结合。)
嵌套2:
if(表达式1){
if(表达式2)语句1
}
else 语句2
(注:else与第一个if结合。)
嵌套3:
if(表达式1)
语句1
else if(表达式2)
语句2
else
语句3
switch语句
switch语句表达式:
switch(){
case常量表达式1:语句1;break;
case常量表达式2:语句2;break;
......
case常量表达式n:语句n;break;
default:语句n+1
}
(注:若表达式的值与常量表达式相等,则从常量表达式开始执行;若不相等,则从default开始执行。break是终止它所在的switch语句或循环语句的执行。)
#include <stdio.h>
int main(void)
{
int a = 1,b = 2;
if(a>b){
printf("%d\n", a);
}//if选择语句
else{
printf("%d\n", b);
}
switch(a){
case a:printf("%d\n", a);break;
case b:printf("%d\n", b);break;
default:printf("Can't find!\n");//switch 语句
}
}
循环
for循环
for语句的形式:
1、
for (初始表达式1;条件表达式2;循环表达式3)
{
循环体;
}
初始表达式1:用于循环开始前为循环变量设置初始值。
条件表达式2:控制循环执行的条件,决定循环次数。
循环表达式3:循环控制变量修改表达式。
循环体:被重复执行的语句。
2、
如果表达式为真,执行循环体,如果为假,跳过循环体。
#include <stdio.h>
int main(void)
{
int i = 0, a = 0;
for (i=1 ; i<101; i++){
a = a + i;//求1到100的和
}
printf("%d\n", a);//打印1到100的和
}
while循环
1、
while语句的形式:
while(表达式) //表达式为真执行循环体;为假时跳过循环体。
循环体;
2、
while语句常称为“当型”循环语句。
3、
说明:
先判断表达式,后执行语句。
表达式同if语句后的表达式一样,可以是任何类型的表达式。
while循环结构常用于循环次数不固定,根据是否满足某个条件决定循环与否的情况。
循环体多于一句时,用一对{}括起。
#include <stdio.h>
int main(void)
{
int i = 0, a = 0;
while(i<101)
a = a + i;//求1到100的和
printf("%d\n", a);//打印1到100的和
}
//或者
#include <stdio.h>
int main(void)
{
int i = 0, a = 0,b = 0;
while(i<101){
a = a + i;
b++;
}//求1到100的和
printf("a= %d\n", a);//打印1到100的和
printf("b= %d\n", b);
}
do{}while循环
do-while的形式:
do
{
循环体;
}
while(表达式);
2、do while语句常称为“直到型”循环语句。
3、说明:
先执行语句,后判断表达式。
第一次条件为真时,while,do-while等价;
第一镒条件为假时,二者不同,会多出来一次的循环。
条件为真时
#include <stdio.h>
int main(void)
{
int i = 1, a = 0,b = 0;
do
{
a = a + i;
b++;
}while(i++<100);//求1到100的和,因为多了一次,所以循环条件减一
printf("a= %d\n", a);//打印1到100的和
printf("b= %d\n", b);
}
条件为假时
#include <stdio.h>
int main(void)
{
int i = 101, a = 0,b = 0;
do
{
a = a + i;
b++;
}while(i++<100);//求1到100的和
printf("a= %d\n", a);//打印1到100的和
printf("b= %d\n", b);
}
循环的嵌套
可以使用循环之中再来一个循环的格式来打印一些东西,比如打印99乘法表。
![#include <stdio.h>
int main(void)
{
int i = 0, j = 0;
for (i=1; i<10; i++)//控制行
{
for (j=1; j<=i; j++)//控制列
{
printf(" %d*%d =%2d", i, j, i*j);//计算并打印主体
}
printf("\n");//每行之后的换行
}
}
效果如下