C的分支与循环
分支语句
1.if语句
格式:
if(表达式)
{
.....//表达式的逻辑值为真所执行的语句。
}
1.1 if...else语句
格式:
if(表达式)
{
...//表达式的逻辑值为真所执行的语句。
}else
{
...//表达式的逻辑值为假所执行的语句。
}
1.2 if...else if..else语句
格式:
if(表达式1){...}
else if(表达式2){...}
.......
else if(表达式n){...}
else{...}
2.switch语句
格式:
switch()
{
case 常量表达式1:语句或程序块1 break;
case 常量表达式2:语句或程序块2 break;
...
case 常量表达式n:语句或程序块n break;
default:语句或程序块n+1
}
3.嵌套分支
if嵌套
注意:悬挂else. else始终与它前最近的if匹配。
实例:
#include <stdio.h>
int main()
{
char isRain is Free;
printf("是否有空?(Y/N):");
scanf("%c", &isFree);
getchar(); //过滤回车键
printf("是否下雨?(Y/N):");
scanf("%c", &isRain);
if(isFree == 'Y')
if(isRain == 'Y')
printf("记得带伞哦^_^\n");
else
{
printf("女神没空!……\n")
}
}//如果先输入Y在输入N,得到的结果不会是想要的结果。
改正方法:
#include <stdio.h>
int main()
{
char isRain is Free;
printf("是否有空?(Y/N):");
scanf("%c", &isFree);
getchar(); //过滤回车键
printf("是否下雨?(Y/N):");
scanf("%c", &isRain);
if(isFree == 'Y')
{ if(isRain == 'Y')
printf("记得带伞哦^_^\n");
}
else
{
printf("女神没空!……\n")
}
}
switch嵌套
switch(ch1) {
case 'A':
printf("这个 A 是外部 switch 的一部分" );
switch(ch2) {
case 'A':
printf("这个 A 是内部 switch 的一部分" );
break;
case 'B': /* 内部 B case 代码 */
}
break;
case 'B': /* 外部 B case 代码 */
}
//看着有点绕,不太建议使用。
4.if...else代替品
当在进行少量语句分支时可使用条件运算符?:代替if...else
实例:
#include<stdio.h>
int main()
{
int num;
printf("输入一个数字 : ");
scanf("%d",&num);
(num%2==0)?printf("偶数"):printf("奇数");
}
-
循 环语句
1.while循环 (入口条件循环)
while (表达式)
{循环体}
2.do...while循环 (出口条件循环)
格式:
do
{循环体}
while (表达式);
注:至少执行一次循环。 满足表达式执行循环。
3.for循环
格式:
for (表达式1;表达式2;表达式3)
{循环体}
来源:循环基本结构的结合,表达式1循环初始化、表达式2循环条件、表达式3循环调整。
实例:
#include <stdio.h>
int main()
{
int count;
for (count = 0; count < 10; count++)
{
printf("http://127.0.0.1/srt\n");
} return 0;}
4.嵌套循环
实例1:
#include <stdio.h>
int main()
{
int i,j;
for(i = 0; i < 3; i++)
{
for(j = 0; j < 3; j++)
{
printf("i = %d, j =%d\n");
}
} return 0;
}
实例2:
#include <stdio.h>
int main()
{
int i,j;
for(i = 1; i <= 9; i++)
{
for(j = 1; j <= i; j++)
{
printf("%d*%d=%-2d ", i, j, i * j);
}
putchar("\n");
}
return 0;
}
控制语句
控制语句 | 描述 |
break语句 | 终止循环或switch语句,程序流将继续执行紧接着循环或switch的下一条语句。 |
continue语句 | 告诉一个循环体立刻停止本次循环迭代,重新开始下一次循环迭代。 |
goto语句 | 将控制转移到被标记的语句。但是不建议在程序中使用goto语句。 |