07-if与循环-案例超经典-C语言_if循环的基本例子

本讲将通过几个经典例子来讲解选择与循环嵌套。

选择与选择嵌套

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语言简明教程》

01-C语言的过去与未来

02-Dev C++  安装及使用方法教程

03-C语言的第一个简单实例

04-关键字与标识符-C语言

05-数据类型与常量变量-C语言

06-C语言运算符

IT入门 感谢关注程序员题库→ 程序员用的单词表→ 练习地址:www.520mg.com/it

???戳“阅读原文”,get涨薪技能!

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里无偿获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值