【C语言连载二】--------选择结构、循环结构、跳转语句(附几个例子)
2015-08-18 08:19
573 查看
一、选择结构:
1、if 语句
if — else 语句
if — else if — else 语句
2、switch语句、穿透
注意:
(1)switch后面的小括号中的表达式只能为char, int, short, long, 枚举类型,且不能为空。
(2)case语句表达式的值只能为:char, int, short, long, 枚举类型,且只能是常量。
(3)若无break,则会穿透,//当执行switch语句时,若没有遇到break,则自动进入下一个case继续执行。
(4)若条件较多,且数据类型为整型,switch语句比if语句效率高。
//输入成绩,判断等级
float score = 0;
printf("enter your score:");
scanf("%f", &score);
if (score < 0 || score > 100) {
printf("输入错误");
return 0;
}
int result = score / 10;
switch (result) {
case 10:
case 9:
printf("优秀\n");
break;
case 8:
printf("良好\n");
break;
case 6:
case 7:
printf("中等\n");
break;
case 5:
case 4:
case 3:
case 2:
case 1:
printf("差\n");
break;
default:
printf("人才\n");
break;
}
二、循环结构
1、while循环
while ( 条件 ) {
} //先判断,在执行
2、do---while
do {
} while ( 条件 ); // 先执行,在判断
while[b]循环与do---while[/b]
初始条件不符合时,do——while也会循环一次,而while循环一次也不会执行
3、for 循环
/*******for循环*********/
for ( int i = 1 ; i < 100 ; i++)
(1) (2) (4)
{
(3)
}
注意:
1)、for循环的顺序 //执行步骤:(1),(2),(3),(4)
2)、小括号中一定要有两个分号
三、跳转语句
1、break跳出当前循环
break语句用于switch语句和循环语句
2、continue作用,忽略此次循环剩下的操作,直接进入下一次的循环
3、goto 无条件跳转
/*1、一球从100米高度自由落下,每次落地后反跳回原高度的一半;在落下,
求它在第三次落地时,共经过多少米?第三次反弹多高?
*/
float h
= 100,sum = 0;
for (int i
= 1; i <= 3;
i++) {
sum += h; //===》sum
= sum + 第 i 次落下高度
h = h / 2; //第i 次反弹高度
sum += h; //===》sum
= sum + 第 i 次反弹高度
}
printf("它在第三次落地时,共经过%.2f米,第三次反弹的高度是%.2f米。 \n",sum-h,h);
//2、打印两幅图案
/*
输出图案:
*
***
*****
*******
*****
***
*
*/
方法一:
int i
= 0, j = 0,k
= 0; //i 控制行数, k 控制一行*的数量
for (i = 1;
i <= 4; i++) { //输出上面4行的*
for (k=1;
k < 2* i; k++) {
printf("*"); //输出一行的*
}
printf("\n"); //输完一行后换行
}
for (i = 1;
i <= 3; i++) {//输出第5、6、7行的*
for (k=1;
k <= 7 - 2 *
i; k++) {
printf("*"); //输出一行的*
}
printf("\n"); //输完一行后换行
}
方法二:
int
max =
7;
for
(int
i =
0; i < max; i++) {
for (int
j =
0; j <
2 * i +
1 && j <
2 * (max -
1 - i) +
1; j++) {
printf("*");
}
printf("\n");
}
/*
3、输出图案:
*
***
*****
*******
*****
***
*
*/
方法一:
int i = 0,
j = 0,k = 0;//i 控制行数, j 控制空格, k 控制一行*的数量
for (i = 1;
i <= 4; i++) { //输出上面4行的*
for (j=1;
j<=4-i; j++) {
printf(" "); //输出* 前面的空格
}
for (k=1;
k < 2* i; k++) {
printf("*"); //输出一行的*
}
printf("\n"); //输完一行后换行
}
for (i = 1;
i <= 3; i++) {//输出第5、6、7行的*
for (j=1;
j<=i; j++) {
printf(" "); //输出* 前面的空格}
}
for (k=1;
k <= 7-2*
i; k++) {
printf("*"); //输出一行的*
}
printf("\n"); //输完一行后换行
}
方法二:
int max =
7;
for (int
i =
0; i < max; i ++) {
//打印空格
0-3 1-2 2-1 3-0 4-1 5-2 6-3
for (int
j =
0; j < (max -
1)/2
- i || j < i - (max -
1)/2
; j++) {
printf(" ");
}
//打印*
for (int
j =
0; j <
2 * i +
1 && j <
2 * (max -
1 - i) +
1; j++) {
printf("*");
}
printf("\n");
}
1、if 语句
if — else 语句
if — else if — else 语句
2、switch语句、穿透
注意:
(1)switch后面的小括号中的表达式只能为char, int, short, long, 枚举类型,且不能为空。
(2)case语句表达式的值只能为:char, int, short, long, 枚举类型,且只能是常量。
(3)若无break,则会穿透,//当执行switch语句时,若没有遇到break,则自动进入下一个case继续执行。
(4)若条件较多,且数据类型为整型,switch语句比if语句效率高。
//输入成绩,判断等级
float score = 0;
printf("enter your score:");
scanf("%f", &score);
if (score < 0 || score > 100) {
printf("输入错误");
return 0;
}
int result = score / 10;
switch (result) {
case 10:
case 9:
printf("优秀\n");
break;
case 8:
printf("良好\n");
break;
case 6:
case 7:
printf("中等\n");
break;
case 5:
case 4:
case 3:
case 2:
case 1:
printf("差\n");
break;
default:
printf("人才\n");
break;
}
二、循环结构
1、while循环
while ( 条件 ) {
} //先判断,在执行
2、do---while
do {
} while ( 条件 ); // 先执行,在判断
while[b]循环与do---while[/b]
初始条件不符合时,do——while也会循环一次,而while循环一次也不会执行
3、for 循环
/*******for循环*********/
for ( int i = 1 ; i < 100 ; i++)
(1) (2) (4)
{
(3)
}
注意:
1)、for循环的顺序 //执行步骤:(1),(2),(3),(4)
2)、小括号中一定要有两个分号
三、跳转语句
1、break跳出当前循环
break语句用于switch语句和循环语句
2、continue作用,忽略此次循环剩下的操作,直接进入下一次的循环
3、goto 无条件跳转
/*1、一球从100米高度自由落下,每次落地后反跳回原高度的一半;在落下,
求它在第三次落地时,共经过多少米?第三次反弹多高?
*/
float h
= 100,sum = 0;
for (int i
= 1; i <= 3;
i++) {
sum += h; //===》sum
= sum + 第 i 次落下高度
h = h / 2; //第i 次反弹高度
sum += h; //===》sum
= sum + 第 i 次反弹高度
}
printf("它在第三次落地时,共经过%.2f米,第三次反弹的高度是%.2f米。 \n",sum-h,h);
//2、打印两幅图案
/*
输出图案:
*
***
*****
*******
*****
***
*
*/
方法一:
int i
= 0, j = 0,k
= 0; //i 控制行数, k 控制一行*的数量
for (i = 1;
i <= 4; i++) { //输出上面4行的*
for (k=1;
k < 2* i; k++) {
printf("*"); //输出一行的*
}
printf("\n"); //输完一行后换行
}
for (i = 1;
i <= 3; i++) {//输出第5、6、7行的*
for (k=1;
k <= 7 - 2 *
i; k++) {
printf("*"); //输出一行的*
}
printf("\n"); //输完一行后换行
}
方法二:
int
max =
7;
for
(int
i =
0; i < max; i++) {
for (int
j =
0; j <
2 * i +
1 && j <
2 * (max -
1 - i) +
1; j++) {
printf("*");
}
printf("\n");
}
/*
3、输出图案:
*
***
*****
*******
*****
***
*
*/
方法一:
int i = 0,
j = 0,k = 0;//i 控制行数, j 控制空格, k 控制一行*的数量
for (i = 1;
i <= 4; i++) { //输出上面4行的*
for (j=1;
j<=4-i; j++) {
printf(" "); //输出* 前面的空格
}
for (k=1;
k < 2* i; k++) {
printf("*"); //输出一行的*
}
printf("\n"); //输完一行后换行
}
for (i = 1;
i <= 3; i++) {//输出第5、6、7行的*
for (j=1;
j<=i; j++) {
printf(" "); //输出* 前面的空格}
}
for (k=1;
k <= 7-2*
i; k++) {
printf("*"); //输出一行的*
}
printf("\n"); //输完一行后换行
}
方法二:
int max =
7;
for (int
i =
0; i < max; i ++) {
//打印空格
0-3 1-2 2-1 3-0 4-1 5-2 6-3
for (int
j =
0; j < (max -
1)/2
- i || j < i - (max -
1)/2
; j++) {
printf(" ");
}
//打印*
for (int
j =
0; j <
2 * i +
1 && j <
2 * (max -
1 - i) +
1; j++) {
printf("*");
}
printf("\n");
}
相关文章推荐
- Ruby简明教程之循环语句介绍
- MySQL循环语句之while循环测试
- 探索PowerShell(十) 循环语句介绍
- C#页面之间跳转功能的小结
- 根据IP跳转到用户所在城市的实现步骤
- php download.php实现代码 跳转到下载文件(response.redirect)
- JavaScript实现单击下拉框选择直接跳转页面的方法
- Shell脚本while、until循环语句简明教程
- shell中的循环语句、判断语句实例
- 登陆成功后自动计算秒数执行跳转
- bash 编程中循环语句用法
- PHP弹出提示框并跳转到新页面即重定向到新页面
- 几种有用的变型 PHP中循环语句的用法介绍
- asp.net for循环语句第1/2页
- javascript 网页跳转的方法
- 手机平板等移动端适配跳转URL的js代码
- Python中条件选择和循环语句使用方法介绍
- 自动跳转中英文页面
- Shell中的循环语句for、while、until实例讲解
- PHP数组及条件,循环语句学习