循环语句与条件语句的细节与头脑 --进阶C语言

打印 上一主题 下一主题

主题 531|帖子 531|积分 1593

目次

if-else组合


  • 表达式: 变量与操作符的组合称为表达式
  • 语句: 以分号结尾的表达式称为语句
  • if(0){ //... }注释法,在看到if(0)时,有可能这是一个注释,不保举这种做法,但是必要认识.
if的执行顺序


  • 盘算功能:先执行完毕if括号()中的表达式or某种函数,得到表达式的真假结果
  • 判定功能:根据表达式结果举行条件判定
  • 分支功能:根据判定结果举行分支
    (if有判定和分支两个功能,而switch只有判定而没有分支功能,因此必须使用break)

操作符的执行顺序测试方法

printf("1   ") && printf("2   ");
printf("1   ") || printf("2   ");
C语言的布尔类型


  • C89/C90没有bool类型
  • C99 引入了关键字为_Bool的类型,在新增的头文件stdbool.h中.为了保证C/C++的兼容性,被重新用宏写成了bool.
  • 微软对C语言bool类型也有一套尺度,BOOL,FALSE,TRUE. 不保举使用微软这套尺度,不具备可移植性
switch case组合


  • 根本语法布局
  1. //switch只能对整数进行判定,做不了复杂的逻辑计算
  2. switch(整型变量/常量/整型表达式){
  3.     case 常量1:
  4.         break;
  5.     case 常量2:
  6.         break;
  7.     case 常量3:
  8.         break;
  9.     default:
  10.         break;
  11. }
  12. 推荐使用switch的场景:只能用于整数判定且分支很多的情况下
复制代码

  • switch case 的功能
    switch自己没有判定和分支能力,switch是拿着结果去找case举行匹配,
    case具有判定能力,但没有分支能力,case是通过break完成分支功能
    break具有分支功能,相当于if的分支能力.
    default相当else,处理非常环境
(补充) 屏蔽告诫的方法
  1. error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
  2. 方法1:
  3. #pragma warning(disable:4996)
  4. 方法2:
  5. #define _CRT_SECURE_NO_WARNINGS //该宏定义必须写在文件的首行(头文件的前面)才有效
  6. (如果宏没有宏值,则只能用在#ifdef等条件编译语句中,即只用于标识)
复制代码

  • 在case中执行多条语句,发起case后都带上花括号.

    在case中定义变量,直接写会告诫,必要带上花括号,但不发起在case中定义变量,如果非要这么做,可以封装成函数来替换.而且

  • 多个case执行同样语句
  1. int main()
  2. {
  3.     int n = 0 ;
  4.     scanf("%d",&n);
  5.     switch (n)
  6.     {
  7.         case 1: case 2: case 3: case 4: case 5:
  8.             puts("周内");
  9.             break;
  10.         case 6:
  11.             puts("周六");
  12.             break;
  13.         case 7:
  14.             puts("周日");
  15.             break;
  16.         default:
  17.             break;
  18.     }
  19.     return 0;
  20. }
复制代码

  • default可以在switch中的任意位置,一样平常风俗放在最后的case后
  • switch中尽量不要单独出现return.一样平常风俗用break,突然return容易搞混
  • switch中不要使用bool值,不好维护
  • case的值必须是数字常量,不能是const int a = 1;这种
  • 按执行频率排列case语句,频率越高越靠前,能淘汰匹配次数
do、while、for

循环的根本布局


  • 一样平常的循环都必须要有3种功能:

    • 循环条件初始化
    • 循环条件判定
    • 循环条件更新

(死循环除外)
  1. int main()
  2. {
  3.     int count = 10; //1.循环条件初始化
  4.     while (count > 10) //2.循环条件判定
  5.     {
  6.         printf("%d\n", count); //3.业务逻辑
  7.         count--; //4.循环条件更新
  8.     }
  9.     return 0;
  10. }
复制代码

  • for循环
[code]使用样例:for(int i = 0; i

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

王海鱼

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表