本讲将通过几个经典例子来讲解选择与循环嵌套。
选择与选择嵌套
if 与 if嵌套
判断变量a是否在3~10之间。
-
int a =
4;
-
-
-
if (a >
3) {
-
if (a <
10) {
-
printf(
"满足条件");
-
}
-
}
-
-
可以看到,上面程序也可以使用逻辑运算符来简化为:
-
int a =
4;
-
if (a >
3 && a <
10) {
-
printf(
"满足条件");
-
}
-
-
第二种写法明显更清晰,也更方便处理。所以在开发过程中,要学会合理运用逻辑运算来合并一些没必要的嵌套。
if 与 switch嵌套
用户输入是否是工作日(y/n)与星期几。如果是工作日,则星期一输出“中午吃牛肉面”,星期二输出“中午吃卤肉面”。
-
char isWorkingDay =
0;
-
int dayOfWeek;
-
-
-
printf(
"请输入是否是工作日(y/n), 与星期几:");
-
scanf(
"%c %d", &isWorkingDay, &dayOfWeek);
-
-
-
if (isWorkingDay ==
'y') {
-
switch (dayOfWeek) {
-
case
1:
-
printf(
"中午吃牛肉面");
-
break;
-
case
2:
-
printf(
"中午吃卤肉面");
-
break;
-
default:
-
break;
-
}
-
}
-
-
选择与循环嵌套
对于选择与循环的嵌套结构,主要讲解for循环与if的嵌套。
if 与 for嵌套
输出2000~2100之间的闰年。
-
// 从2000循环到2100,挨着判断是否是闰年
-
for (
int i =
2000; i <=
2100; i ++) {
-
// 判断闰年:能被400整除或能被4且不能被100整除的年份
-
if ((i %
400 ==
0) || (i %
4 ==
0 && i %
100 !=
0)) {
-
printf(
"%d ", i);
-
}
-
}
-
-
循环与循环嵌套
循环嵌套主要讲解for循环的嵌套。
输出以下形状
-
****
-
****
-
****
-
// 控制行数
-
for (
int i =
0; i <
3; i ++) {
-
// 控制列数
-
for (
int j =
0; j <
4; j ++) {
-
printf(
"*");
-
}
-
// 每一行结束后换行
-
printf(
"\n");
-
}
-
-
输出以下形状
-
*
-
**
-
***
-
****
首先分析*与行号的关系:
行号 | *个数 |
0 | 1 |
1 | 2 |
2 | 3 |
3 | 4 |
-
// 控制有多少行
-
for (
int i =
0; i <
4; i ++) {
-
// 控制每一行都多少*
-
for (
int j =
0; j <= i; j ++) {
-
printf(
"*");
-
}
-
printf(
"\n");
-
}
-
-
输出九九乘法表
-
for (
int i =
1; i <=
9; i ++) {
-
for (
int j =
1; j <= i; j ++) {
-
printf(
"%d * %d = %d\t", j, i, i * j);
-
}
-
printf(
"\n");
-
}
-
-
输出以下形状
-
*
-
**
-
**
*
-
****
-
首先分析*与行号的关系:
行号 | *个数 | 空格数 |
0 | 1 | 3 |
1 | 2 | 2 |
2 | 3 | 1 |
3 | 4 | 0 |
空格数 = 总行数 - 1 - 行号
*数 = 行号 + 1
-
// 控制行数
-
for (
int i =
0; i <
4; i ++) {
-
-
-
// 控制每行的空格数
-
for (
int j =
0; j <
4 -
1 - i; j ++) {
-
printf(
" ");
-
}
-
-
-
// 控制每行的*数
-
for (
int j =
0; j <= i; j ++) {
-
printf(
"*");
-
}
-
printf(
"\n");
-
}
-
-
输出以下形状
-
1
-
2
3
-
4
5
6
-
7
8
9
0
分析:这道题同样需要找到行号、空格、数字之间的关系。同时可以看到,数字是从1开始,到0结束的,可以通过取余运算来达到这个效果。
-
// 定义变量number,用于输出连续数字
-
int number =
1;
-
-
-
// 外层循环控制行数
-
for (
int i =
0; i <
4; i ++) {
-
-
-
// 控制每一行的空格数
-
for (
int j =
0; j <
4 -
1 - i; j ++) {
-
printf(
" ");
-
}
-
// 控制每一行输出的数字
-
for (
int j =
0; j < i +
1; j ++) {
-
// 因为最后一个数是0,而不是10,所以对10取余
-
printf(
"%d ", number %
10);
-
// 每输出一个数,就++
-
number ++;
-
}
-
printf(
"\n");
-
}
-
-
《c语言简明教程》
IT入门 感谢关注 |
程序员题库→ 程序员用的单词表→ 练习地址:www.520mg.com/it |
????戳“阅读原文”,get涨薪技能!
转载:https://blog.csdn.net/bigzql/article/details/109474862
查看评论