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);
}*/