3.6-day06-C语言基础-选择结构程序设计
switch...case语句也可以用来实现分支的处理,使用方法如下
switch(表达式) {
case 数字1:
处理代码1
break;
case 数字2:
处理代码2
break;
....
default:
非正常处理代码
break;
}
其中表达式必须能得到一个整数结果
处理代码1用来处理结果为数字1的情况
for语句可以用来实现循环,使用方法如下
int xun_huan = 0;
for (xun_huan = 0; xun_huan < 次数; xun_huan++) {
反复执行的语句
}
for语句是分组执行的,假设有如下的for语句
for (1;2;3) {
4
}
[1, 2] [4, 3, 2] [4, 3, 2]....
编号为2的语句决定下一组是否要开始,正常情况下当循环结束的时候编号为2的语句计算结果应该是假。
for语句还可以用来表示一组数字的变化过程,循环变量随时代表变化中的某个数值。
循环中可以使用continue;语句直接跳到大括号的末尾,把中间的语句忽略。
循环中可以使用break;语句直接结束循环的执行。
认识break和continue语句:
//break是结束整个循环体,continue是结束单次循环
比方说:
while(x++ < 10)
{
if(x == 3)
{
break;
}
printf("%d\r\n", x);
}
结果是输出 1 2 就退出了整个while循环
但是如果使用continue
while(x++ < 10)
{
if(x == 3)
{
continue;
}
printf("%d\r\n", x);
}
结果是:1 2 4 5 6 7 8 9 10 可见他仅仅是不输出3,因为他结束了本次循环
01year.c
/* 闰年练习 */ #include <stdio.h> int main() { int nian = 0; printf("请输入一个年份数字:"); scanf("%d", &nian); if (!(nian % 400) || (!(nian % 4) && (nian % 100))) { printf("闰年\n"); } else { printf("不是闰年\n"); } return 0; }

02color.c
/* switch...case练习 */ #include <stdio.h> int main() { int yan_se = 0; printf("请输入颜色编号:"); scanf("%d", &yan_se); /*if (0 == yan_se) { printf("红色\n"); } else if (1 == yan_se) { printf("黄色\n"); } else if (2 == yan_se) { printf("蓝色\n"); }*/ switch (yan_se % 3) { case 0: printf("红色\n"); break; case 1: printf("黄色\n"); break; case 2: printf("蓝色\n"); break; default: printf("你有病吧\n"); break; } return 0; }

03hex.c
/* switch...case练习 */ #include <stdio.h> int main() { char zi_fu = 0; printf("请输入一个字符:"); scanf("%c", &zi_fu); switch (zi_fu) { case 'a': printf("10\n"); break; case 'b': printf("11\n"); break; case 'c': printf("12\n"); break; case 'd': printf("13\n"); break; case 'e': printf("14\n"); break; case 'f': printf("15\n"); break; default: printf("错误字符\n"); break; } return 0; }

04for.c
/* for练习 */ #include <stdio.h> int main() { int xun_huan = 0; for (xun_huan = 0;xun_huan < 3;xun_huan++) { printf("1\n"); } return 0; }

05sum.c
/* 求和练习 */ #include <stdio.h> int main() { int xun_huan = 0, shu_zi = 0, he = 0; for (xun_huan = 0;xun_huan < 3;xun_huan++) { printf("请输入一个数字:"); scanf("%d", &shu_zi); he += shu_zi; } printf("求和结果是%d\n", he); return 0; }

06flower.c
/* 循环练习 */ #include <stdio.h> int main() { int ge_shu = 0, xun_huan = 0, biao_zhi = 0; printf("请输入花瓣的片数:"); scanf("%d", &ge_shu); /*for (xun_huan = 0;xun_huan < ge_shu;xun_huan++) { if (biao_zhi) { printf("她爱我\n"); } else { printf("她不爱我\n"); } biao_zhi = 1 - biao_zhi; }*/ for (xun_huan = ge_shu;xun_huan >= 1;xun_huan--) { if (xun_huan % 2) { printf("她爱我\n"); } else { printf("她不爱我\n"); } } return 0; }


ge_shu = 1, ge_shu = xun_huan = 1 % 2 =1,
执行一次循环之后,xun_huan -- 变为 0;
她不爱我
ge_shu = 2, ge_shu = xun_huan =2 %2 = 0;
她爱我
xun_huan --
她不爱我
07num.c
/* 循环练习 */ #include <stdio.h> int main() { int xun_huan = 0; for (xun_huan = 1;xun_huan <= 9;xun_huan++) { if (3 == xun_huan) { continue; } printf("%d\n", xun_huan); if (6 == xun_huan) { break; } } return 0; }

08sun.c
/* 循环练习 */ #include <stdio.h> int main() { int xun_huan = 0, he = 0; for (xun_huan = 5;xun_huan <= 20;xun_huan++) { if (7 == xun_huan) { continue; } he += xun_huan; if (he > 40) { break; } } printf("xun_huan是%d,he是%d\n", xun_huan, he); return 0; }

5 + 6 + 8 + 9 +10+11=49
所以,xun_huan = 11, he=49;
09su.c
/* 素数练习 */ #include <stdio.h> #include <math.h> int main() { int shu_zi = 0, gen = 0, xun_huan = 0; printf("请输入一个数字:"); scanf("%d", &shu_zi); gen = sqrt(shu_zi); for (xun_huan = 2;xun_huan <= gen;xun_huan++) { if (!(shu_zi % xun_huan)) { break; } } if (xun_huan <= gen) { printf("不是素数\n"); } else { printf("是素数\n"); } return 0; }
10fei.c
/* 循环练习 */ #include <stdio.h> int main() { int bian_hao = 0, shu_zi = 1, shu_zi1 = 1, xun_huan = 0; printf("请输入数字编号:"); scanf("%d", &bian_hao); for (xun_huan = 2;xun_huan <= bian_hao ;xun_huan++) { shu_zi1 += shu_zi; shu_zi = shu_zi1 - shu_zi; } printf("要求的数字是%d\n", shu_zi1); return 0; }

浙公网安备 33010602011771号