目录

if 语句

悬空else —— else跟距离它最近的 if 匹配

if 书写形式的对比

if…else、if…else if…else if 和 if...if...if 语句的区别

switch语句


C语言是结构化的程序化设计语言!

顺序结构 —— 从头做到尾,按顺序一步一步往下走

选择结构 —— 做的时候有选择   —— 分支语句

  • if
  • switch

循环结构 —— 循环重复 —— 循环语句

  • while
  • for
  • do while

goto语句

什么是语句?

C语言中由一个分号;隔开的就是一条语句。

if 语句

C语言是如何表示真和假的呢?

非0就是真  比如 -1

0 就是假

语法结构:

//单分支
if(表达式)  //如果表达式为真,语句被执行语句;
//双分支
if(表达式)  //如果表达式为真,执行语句1,否则执行语句2语句1;else语句2;
//多分支if(表达式1)  //如果表达式1为真,执行语句1,如果表达式1不成立,判断表示2语句1;else if(表达式2)  //如果表达式2成立,执行语句2,否则执行语句3语句2;else语句3

举例:

//单分支
#include<stdio.h>
int main(void)
{int age = 10;if (age >= 18)printf("成年\n");  //不输出return 0;
}
//双分支
#include<stdio.h>
int main(void)
{int age = 10;if (age >= 18)printf("成年\n");  elseprintf("未成年\n");  //输出: 未成年return 0;
}

if 和 else 后面如果没有{},则只控制它们后面的第一条语句

if 和 else 后面有{}括起来的多条语句,则会控制被{}的多条语句

//双分支
#include<stdio.h>
int main(void)
{int age = 10;//if 和 else 后面如果没有{},则只控制它们后面的第一条语句//if 和 else 后面有{}括起来的多条语句,则会控制被{}的多条语句if (age >= 18){printf("成年\n");printf("恭喜你,可以谈恋爱啦\n");}else{printf("未成年\n");        printf("不能谈恋爱\n");}return 0;
}

输出:

悬空else —— else跟距离它最近的 if 匹配

看下面代码会输出什么?

建议养成自己良好的代码风格:

#include<stdio.h>
int main(void)
{int a = 0;int b = 2;if (a == 1){if (b == 2){printf("呵呵\n");}else{printf("哈哈\n");}}   return 0;
}

if 书写形式的对比

比较代码1和代码2意思是不是相同的?

//代码1if (condition) {return x;}return y;//代码1和代码2是不是一样?//代码1和代码2表达的意思是相同的,但是代码1风格不好//代码2if (condition){return x;}else{return y;}

代码3:如果 if (num == 5)漏掉一个 = 变成 if (num = 5),则相当于把 5 赋值给 num,代码3就会输出:哈哈

//代码3int num = 2;if (num == 5){printf("哈哈\n"); }// 因为不满足条件,代码3不输出

代码4:将两个整型并列进行比较的时候,把常量放在左边,这样就不会出现代码3那样的错误

//代码4int num = 2;if (5 == num)      //将常量放在左边{printf("哈哈\n");}

总结:代码2和代码4更好,逻辑更加清晰,不容易出错。

if…else、if…else if…else if 和 if...if...if 语句的区别

if…else、if…else if…else if:只要有一个条件被满足,则只会执行与之对应的语句,然后跳出整个判断。

if...if...if:无论条件是否满足,接下来的条件都会被逐个判断。

练习:

1,输入一个数,判断它的奇偶

#include<stdio.h>
int main(void)
{int num;scanf("%d", &num);if (num % 2 == 1){printf("是奇数\n");}else{printf("是偶数\n");}return 0;
}

2,输出1-100之间的奇数

#include<stdio.h>
int main(void)
{int num = 0;while (num++ < 100){if (num % 2 == 1){printf("%d\n", num);}  }return 0;
}

或者

#include<stdio.h>
int main(void)
{int num = 0;for (num = 0; num <= 100; num++){if (num % 2 == 1){printf("%d\n", num);}   }return 0;
}

或者

#include<stdio.h>
int main(void)
{int num = 1;for (num = 1; num <= 100; num += 2){printf("%d\n", num);}return 0;
}

switch语句

switch语句也是一种分支语句。常常用于多分支的情况。

在switch语句中,我们没法直接实现分支,搭配 break 使用才能实现真正的分支。

编程好习惯:在每个switch语句中都放一条 default子句 是个好习惯,甚至可以在后面再加上一个break。

格式:

必须是整型,float不行,字符可以,因为字符用的是其对应的ASCII码值,也是整型

//switch语句格式switch (整型表达式)    {语句项;}//必须是整型,float不行,字符可以,因为字符用的是其对应的ASCII码值//语句项是什么呢?//是一些case语句,如下:case 整型常量表达式:   //必须是整型、常量值语句;

举例:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main(void)
{int day = 0;scanf("%d", &day);switch (day)   // (day)的值是几,就从case几进去,{              //想在哪里出来,就在哪里加 break 使其跳出、停止case 1:     printf("星期一\n");  break;                printf("星期二\n");break;case 3:printf("星期三\n");break;case 4:printf("星期四\n");break;case 5:printf("星期五\n");break;case 6:printf("星期六\n");break;case 7:printf("星期天\n");break;     即使是最后一个case, break可加可不加,也建议加上}return 0;
}

case 后面要不要加 break,是看用户需求来决定的,不是语法规定的,比如:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main(void)
{int day = 0;scanf("%d", &day);switch (day)   // (day)的值是几,就从case几进去,{              //想在哪里出来,就在哪里加 break;case 1:      case 2:case 3:case 4:case 5:printf("工作日\n");break;case 6:case 7:printf("休息日\n");break;      default:       //可以给一个错误提示,default放前中后哪里都行,建议放最后printf("输入错误\n");break;     }return 0;
}

练习:下面程序输出什么?

#include<stdio.h>
int main(void)
{int n = 1;int m = 2;switch (n)   {              case 1: m++;case 2: n++;case 3:switch (n)   //switch允许嵌套使用{          case 1:n++;case 2:m++;n++;break;}case 4:m++;break;default:       break;    }printf("m = %d, n = %d\n", m, n);   //输出:m = 5, n = 3return 0;
}

解析:

C语言 分支语句:if 语句和 switch语句相关推荐

  1. 补充switch语句的内容和逗号运算符(C语言case后没有break的switch语句,会继续执行后面的语句再退出)

    补充switch语句的内容和逗号运算符 C语言case后没有break的switch语句,会继续执行后面的语句再退出 补充逗号运算符 C语言case后没有break的switch语句,会继续执行后面的 ...

  2. 【编译原理笔记14】中间代码生成:布尔表达式的回填,控制流语句的回填,switch语句的翻译,过程调用语句的翻译

    本次笔记内容: 6-8 布尔表达式的回填 6-9 控制流语句的回填 6-10 SWITCH语句的翻译 6-11 过程调用语句的翻译 本节课幻灯片,见于我的 GitHub 仓库:第14讲 中间代码生成_ ...

  3. c语言case后加什么,c++ switch语句的使用(case 后面可以跟N个语句)

    switch语句在处理多分支语句时是一种清晰结构(相比于一系列的if else if ...), 在一般书上的讲解时会给出如下的一般形式: switch(表达式){ case 常量表达式1: 语句1; ...

  4. C语言case后语句省略不写,switch语句基础理解与分析

    switch语句和if语句最为相似,语法接近C语言. switch(expression) { case   value:  statement break; case   value:  state ...

  5. c语言case语句块,JavaScript使用Switch语句来选择将要执行的代码块

    JavaScript Switch 语句 switch 语句用于基于不同的条件来执行不同的动作. 使用 switch 语句来选择要执行的多个代码块之一.语法如下: switch(n) { case 1 ...

  6. continue语句可以用在switch语句和3种循环语句中_必须知道的C语言知识细节:break、continue语句区别...

    break语句.continue语句都是C语言标准规定的跳转类语句,能够实现程序无条件转向另一处执行. break和continue中在循环体中经常出现,因此必须掌握其区别,避免出错. 先复习下两种语 ...

  7. java用switch语句算,Java的switch语句与条件运算符

    文章导读 [前面学习了条件结构的if语句,可以解决多条件判断的情况.除了if语句外,Java语言还提供了switch语句和条件运算符用于简化条件判断语句的编写.本篇探讨Java的switch语句和条件 ...

  8. continue语句可以用在switch语句和3种循环语句中_Java基础复习笔记P20——break和continue...

    控制循环语句: break 和 continue break break是java语言当中的关键字,被翻译为"中断" break+";"可以成为一个单独的完整的 ...

  9. java switch配合return_关于Java switch语句:关于Java switch语句 – 在每种情况下使用return和省略break...

    鉴于这种方法,这是否代表了一些令人震惊的风格或语义失误: private double translateSlider(int sliderVal) { switch (sliderVal) { ca ...

  10. oracle的switch+case语句吗,2.7 switch 语句中的 case 范围

    2.7 switch 语句中的 case 范围 在标准 C 中,switch 语句中的 case 标签只能有一个关联值.Solaris Studio C 允许使用某些编译器中使用的扩展(称为 case ...

最新文章

  1. js变量传递给less_如何利用webpack实现一键换肤(CSS变量替换)
  2. Windows Server 2012 R2 WSUS-13:部署二级WSUS
  3. MongoDB操作(.net)
  4. Android View系统解析(上)
  5. sscanf函数中类型不匹配警告引发的BUG和思考
  6. oracle product文件,快速修复Oracle参数文件的另类方法
  7. python matplotlib 绘图
  8. MemSQL初体验 - (1)传说中速度最快的关系数据库软件
  9. 河北计算机科学与技术研究生,2021年河北工业大学计算机科学与技术(081200)硕士研究生招生信息_考研招生计划和招生人数 - 学途吧...
  10. android 教程概要,Android精通教程-第一节Android入门简介
  11. 贪心——雪糕的最大数量(Leetcode 1833)
  12. Cas单点登录的服务器端和客户端的配置
  13. VirtualLab Fusion光学仿真软件使用笔记
  14. 现代大学英语精读第二版(第四册)学习笔记(原文及全文翻译)——5B - Could You Live with Less(你可以简朴地生活吗)
  15. Requirement diagram
  16. 百度编辑器ueditor-在线图片管理,想修改下默认的排序管理
  17. 叶雕——叹为观止的艺术!
  18. SwiftUI实战教程 第二章 BMI计算器
  19. 关于小米安装app的问题
  20. 4款良心电脑软件,有两款虽已停更,依然支持免费使用

热门文章

  1. 前端学习--PS移动和选区工具
  2. 【转】关于ATSC制数字电视机顶盒的…
  3. CSS基础——简单的文字样式
  4. 专业计算机怎么关机,Win10如何使用快捷键来关机?_win10专业版技巧
  5. TP-LINK 路由器 无线桥接 设置
  6. 雷石服务器带狗盘不显示,雷石点播 哼唱打分说明
  7. TianMao订单数据分析
  8. iPhone屏幕尺寸、逻辑分辨率、物理分辨率、像素密度 (2018)
  9. 软件测试中的测不准原理
  10. Unity app 如何打开商店