c语言分支和循环语句
/*分支语句和循环语句
分支语句:if switch
循环语句:while for do while
if语句
if(表达式)
语句;
if(表达式)
语句1;
else
语句2;
多分支:
if(表达式1)
语句1;
else if(表达式2)
语句2;
else
语句3;*/
/*int main()
{
int age;
printf("你的年龄:");
scanf("%d",&age);
if (age<18)
printf("未成年\n");
else
{
if(age>=18 && age<28)
printf("青年\n");
else if(age>=28 && age<60)
printf("壮年\n");
else if(age>=60 && age<90)
printf("老年\n");
else
printf("接近百年老人\n");
}
/*if (age<18)
printf("未成年\n");
else if(age>=18 && age<28)
printf("青年\n");
else if(age>=28 && age<60)
printf("壮年\n");
else if(age>=60 && age<90)
printf("老年\n");
else
printf("百年老人\n");
/*if(age<18)
printf("未成年\n");
else
printf("成年\n");*/
/*if(表达式)
{
}
else(表达式)
{
}*/
//悬空else :就近原则 与最近的未匹配的if 匹配,否则可以用{}花括号隔开;
//练习:判断一个数是否为奇数;输出1-100之间的奇数
/*int main()
{
int z = 1;
while(z<=100)
{
if(z%2 == 1)
printf("%d\n",z);
z++;
}
}*/
/*int main()
{
int z;
printf("请输入一个数:");
scanf("%d",&z);
if (z<=100 && z%2 != 0)
{
printf("奇数\n",z);
}
else
printf("偶数\n",z);
}*/
//switch语句
/*switch(整型表达式)
{
//case:整型常量表达式
语句项;
//break:中断
}*/
/*int main()
{
int day;
printf("请输入今天星期几:");
scanf("%d",&day);
switch(day)
{
case 1:
printf("星期一\n");
break;
case 2:
printf("星期二\n");
break;
case 3:
printf("星期三\n");
break;
case 4:
printf("星期四\n");
break;
case 5:
printf("星期五\n");
break;
case 6:
printf("星期六\n");
break;
case 7:
printf("星期日\n");
break;
default://处理非法状况
printf("输入错误\n");
}
}*/
//练习
/*int main()
{
int n = 1;
int m = 2;
switch(n)
{
case 1:m++;
case 2:n++;
case 3:
switch(n)
{//switch允许嵌套使用
case 1:n++;
case 2:m++;n++;
break;
}
case 4:m++;
break;
default:
break;
}
printf("m=%d,n=%d\n",m,n);
return 0;
}*/
//循环语句
//while循环
/*while(表达式)
循环语句;
*/
//int main()
/*{
int z=1;
while(z<50)
{
if(z==5)
break;
printf("%d\n",z);
z++;
}
}*/
/*{
int z=1;
while(z<50)
{
if(z==5)
continue;//终止本次循环,直接跳到while循环
printf("%d\n",z);
z++;
}
}*/
//getchar语句
/*int main()
{
int ch = 0;
//ctrl + z
//EOF-end of file -> -1
while((ch=getchar())!= EOF)
{
putchar(ch);
}
}*/
/*int main()
{
int ch = 0;
while((ch = getchar())!=EOF)
{
if(ch<'0' || ch>'9')
continue;
putchar(ch);
}
}*/
//for循环
/*for(表达式1:(初始化变量)表达式2:(判断循环终止)表达式3:(循环条件的调整))
循环语句;*/
/*int main()
{
int z;
//把初始化 判断 调整用在一起
for(z=1;z<=10;z++)
{
if(z==5)
//break;跟while用法一致
continue;//不会出现while那种死循环,会跳到调整部分;
printf("%d\n",z);
}
}*/
//建议:1不可在for循环体内修改循环变量,防止for循环失去控制
// 2建议for语句的循环控制变量的取值采用"前闭后开区间"写法
//for语句变种
/*int main()
{
for(;;)//for循环的初始化 调整 判断可以省略,但是:判断条件省略,那判断条件恒为正;不要随便省略
{
printf("haha\n");//死循环
}
}*/
/*int main()
{
int x,y;
for(x=0,y=0;x<2 && y<5;++x,y++)
{
printf("你是猪\n");
}
return 0;
}*/
//练习:
/*int main()
{
int i = 0;
int k = 0;
for(i=0,k=0; k=0; i++,k++)
k++;
}*///循环0次:因为k=0重新赋值k
//do...while()循环
/*do
{
循环语句;
}
while(表达式);*/
/*int main()
{
int z=1;
do
{
if(z==5)
//break;
continue;//跟while情况一样,形成死循环.
printf("%d\n",z);
z++;
}
while(z<=10);
}*/
//循环语句练习
//计算n的阶乘
/*int main()
{
int a=0;
int n=0;
int ret=1;
scanf("%d",&n);
for(a=1;a<=n;a++)
{
ret=ret*a;
}
printf("ret=%d\n",ret);
}*/
//计算1!+2!+3!+....+10!
/*int main()
{
int a=0;
int n=0;
int ret=1;
int sum=0;
for(n=1;n<=3;n++)
{
ret=1;
for(a=1;a<=n;a++)
{
ret=ret*a;
}
//n的阶乘
sum=sum+ret;
}
printf("sum=%d\n",sum);
}*/
//优化
/*int main()
{
int a=0;
int n=0;
int ret=1;
int sum=0;
for(n=1;n<=3;n++)
{
// ret=1;
// for(a=1;a<=n;a++)
// {
ret=ret*n;
// }
//n的阶乘
sum=sum+ret;
}
printf("sum=%d\n",sum);
}*/