C++学习(十)(C语言部分)之 分支语句
#include<stdio.h> // std 标准 io ----> input output 输入 输出 printf scanf getchar ......
#include<stdlib.h> // system libary库
//预处理命令 可以当做注释用
#if 0 //#if 条件 如果调件满足 后面的这段程序会被编译
#elif 1 //else if条件2
#else // else
#endif // 作为结束的标记
一、c语言中有三大流程
1、顺序结构 从上往下 依次执行 最基础的结构
例如:
将下列语句 依次执行 输出
2、循环结构 就是一个一直执行的过程
比如:一直吃 就是循环
3、分支结构 就是一个带有选择性的
比如:“你今天吃饭还是不吃饭?” 根据当前情况进行选择 吃或者不吃就是分支
二、分支
分支
1、if else
> < = !=
! && ||
数字也可以作为条件
格式:
if(饿){吃;}//只有if没有else
if(条件)(语句1)//有if和else
else(语句2)
嵌套 if的()或者else的()里面还有if--->嵌套
if(条件1){语句2} //多层分支
else if(条件2){语句2}//可以有多个else if
......
else if(条件n){语句n}
else {语句}
先判断if if成立执行语句1 直接跳出
if不成立 判断else if 语句2 条件2成立执行语句2
注意点:
1、有if不一定有else 但是有else必定有if
2、if 语句后面不要加分号
如果if满足不执行任何语句可以加分号
3、关于{}的省略
不加{} if只匹配离他最近的一句
如果{}只有一句 那么可以省略{}
刚刚开始写 不熟练就不要省略了
4、条件的写法
if(20==x) 涉及到 == 的时候 常量放左边 避免少写=
最简单的例子:
如上图的程序 因为x=1,不满足x>2的条件 所以直接执行后面的语句
如果改为x=3则会执行 括号里面的语句
有else的语句://else是可以省略的
所以 条件不同时 就会执行不同的语句
条件嵌套例子;
当前语句会执行49行这一句
改变一下条件 男士改为女士
当前会执行第53行的语句
多层嵌套;
在改代码中 一个 = 表示赋值 == 表示等于
根据设置断点 逐语句调试 最终执行的是第85行代码 然后跳出循环
用数字做判断条件 0为假 其他数字为真
因为条件为假 所以不执行里面的语句
如果在if后面加分号
他就会直接执行后面的语句
所以 if(o); 就等价于 if(0){}
有关{}的省略
省略{}后
说明 if 只控制第一句
2、switch
用于枚举出所有的选项
格式;
switch(变量)
{括号不能省略
default: 语句;break;//可以放在其他位置 也可以省略
case 常量1;break;
case 常量2;break;
...
}
//比较case后面的常量的值 和变量的值 相等就执行
都不相等 就执行default
所有可能的选项都能列举出来就用switch (可以和枚举搭配)
所有分支全部可以用if,但是某些情况下switch更加简洁
注意 1:default可以放任何地方 也可以不写 但是一个switch里面只能有一个default
2:case后面的值不能相同 case后面只能是整型和单个字符 不可以是 小数和字符串(中文算字符串)
3:break case和default后面
先匹配对应的case 或者default 然后一直往后执行 直到遇到break结束
例如:
当我们删除后面的break时
之所以会输出这样的结果是因为 当代码week=5 匹配到第138行时 开始执行 但是因为138行的break没有的 所以不会停下来 继续往后面执行 知道遇到break时调出循环
所以会打印出两个结果
三目 也可以作为分支
?:
if(条件){语句1;}
else{语句2;}
条件?语句1:语句2 // 稍微简单点
x=3>4?3:4;
等价于
if(3>4){x=3;}
else{x=4;}
同一个问题 两种处理方式 上面的是if else语句 下面的是三目运算
调试代码如下:
/*
1、顺序结构 从上往下 依次执行
2、循环结构 一直吃
3、分支结构 吃或者不吃 分支
1、if else
> < = !=
! && ||
数字也可以作为条件 格式:
if(饿){吃;}//只有if没有else if(条件)(语句1)//有if和else
else(语句2) 嵌套 if的()或者else的()里面还有if--->嵌套 if(条件1){语句2} //多层分支
else if(条件2){语句2}//可以有多个else if
......
else if(条件n){语句n}
else {语句}
先判断if if成立执行语句1 直接跳出
if不成立 判断else if 语句2 条件2成立执行语句2 注意点
1、有if不一定有else 但是有else必定有if
2、if 语句后面不要加分号
如果if满足不执行任何语句可以加分号
3、关于{}的省略 2、switch
格式; switch(变量)
{ 括号不能省略
default:语句;break;//可以放在其他位置 也可以省略
case 常量1;break;
case 常量2;break;
...
}
//比较case后面的常量的值 和变量的值 相等就执行
都不相等 就执行default 所有可能的选项都能列举出来就用switch (可以和枚举搭配)
所有分支全部可以用if,但是某些情况下switch更加简洁 三目也简单 注意 1:default可以放任何地方 也可以不写 但是一个switch里面只能有一个default
2:case后面的值不能相同 case后面只能是整型和单个字符 不可以是 小数和字符串(中文算字符串)
3:break case和default后面
先匹配对应的case 或者default 然后一直往后执行 直到遇到break结束 三目 也可以作为分支
?: if(条件){语句1;}
else{语句2;}
条件?语句1:语句2 // 稍微简单些
x=3>4?3:4; 等价于 if(3>4){x=3;}
else{x=4;} */ #include<stdio.h>
int main()
{ /*
int weight = 103;
char sex = 'W';
if (weight <=100)//条件满足 执行()中的语句
{
printf("吃饭\n");//语句1
}
else//条件不满足 执行else中的语句 else是可以省略的
{
if (sex == 'M')//男士
{
printf("吃饭\n");//体重大于100 并且sex是男士
}
else
{
printf("节食\n");
} }
*/ /*
int week = 5;//表示周五
if (week == 1)
{
printf("周一\n");
}
else if(week==2)
{
printf("周二\n");
}
else if (week == 3)
{
printf("周三\n");
}
else if (week == 4)
{
printf("周四\n");
}
else if (week == 5)
{
printf("周五\n");
}
else if (week == 6)
{
printf("周六\n");
}
else if (week == 7)
{
printf("周末\n");
}
else//当上面的条件全部不成立的话就执行该语句
{
printf("输入错误!!!\n");
}
*/ /*
if (0)//条件为假
//{
printf("hello world!\n");//不加{} if只匹配离他最近的一句
printf("你好世界!\n");
//}
*/ /*
int week = 5;
switch (week)
{
default: printf("错误\n"); break;
case 1: printf("周一\n"); break;
case 2: 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;
}
*/ /*
int x = 1, y = 2, z = 3;//找到最大值
int max;
if (x > y)
{
//x比y大
if (x > z)
{
max = x;//x最大
}
else
{
max = z;
}
}
else
{
if (y > z)
{
max = y;
}
else
{
max = z;
}
}
printf("%d\n",max);
*/ /* 三目运算
max = x > y ?( x > z ? x : z) :( y > z ? y : z);
printf("%d\n", max); */ getchar();//接收一个字符 防止闪屏
return ; //函数结束
} //预处理命令 可以当做注释用
#if 0 //#if 条件 如果调件满足 后面的这段程序会被编译 #elif 1 //else if条件2 #else // else #endif // 作为结束的标记
2018-06-18 13:09:38
C++学习(十)(C语言部分)之 分支语句的更多相关文章
- Java之基础学习(数据类型、运算符、分支语句和循环语句)
在工作用得比较多的是shell和python编程,对于java以前也学习过,使用很少,这次借朋友推荐的java视频教程来温习下. 也是因为现在很多开源测试工具使用java编写的,学习一下更有助于测试工 ...
- C语言进阶_分支语句
勇气是在压力之下展现出的优雅. 一.简介 C语言提供了两种分支语句可供选用,一是if.......else....类型,一种是Switch语句.两种语句都能根据条件判断结果执行不同的指令,且能进行替换 ...
- Python学习教程(learning Python)--3.3 分支语句的条件表达式详解
本节主要讨论分支语句的条件表达式问题. 在if或者if-else分支控制语句里由于都用到条件判断(表达式是真还是假),条件判断可以是一种关系运算也可以是布尔表达式. 本节将对if及if-else语句的 ...
- python2学习------基础语法1 (变量、分支语句、循环语句、字符串操作)
1.变量类型 Numbers(数字):int,float,long String(字符串) List(列表) tuple(元组) dict(字典) bool(布尔):True,False # 删除变量 ...
- python学习笔记(6)--条件分支语句
if xxxx: coding if xxxx: coding else: coding if xxxx: coding elif xxx: coding …… else: coding 或者一种简洁 ...
- iOS学习之C语言分支结构
一.BOOL类型 返回值:真:YES 假:NO 定义一个布尔类型的变量 YES == 1, NO == 0 计算机在识别时,YES就替换成1,NO就替换成0 BOOL isGirl = YES; ...
- Dart语言学习(十) Dart流程控制语句
一.条件语句:if.if...elseif.if...elseif...else int score = 95; if (score >=90) { print('优秀'); } else if ...
- 值得学习的C语言开源项目
值得学习的C语言开源项目 - 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具.它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工 ...
- [翻译]Python——十年语言之冠
最近我发现了这个PYPL——编程语言流行指数.它对各种语言的流行指标进行了二次发掘.作者指出TIOBE指数很可能不能反映出真实情况,归咎于一些编程语言的名称会导致误解.他引入了一些新术语,利用谷歌趋势 ...
- Java学习笔记:语言基础
Java学习笔记:语言基础 2014-1-31 最近开始学习Java,目的倒不在于想深入的掌握Java开发,而是想了解Java的基本语法,可以阅读Java源代码,从而拓展一些知识面.同时为学习An ...
随机推荐
- Win10系列:C#应用控件基础4
ComboBox控件 ComboBox控件包含一个不可编辑的文本框和一个下拉列表,这个下拉列表是由多个ComboBoxItem子元素组成的.使用ComboBox控件可以节省界面空间,因为ComboBo ...
- Vue + Element UI 实现权限管理系统(优化登录流程)
完善登录流程 1. 丰富登录界面 1.1 从 Element 指南中选择组件模板丰富登录界面,放置一个登录界面表单,包含账号密码输入框和登录重置按钮. <template> <el- ...
- U帮忙U盘启动盘制作
第一步:制作U盘启动盘前的软.硬件准备 1.准备一个U盘或内存卡(尽量使用2G以上的) 2.进入 U帮忙官网 下载最新版U盘启动盘制作工具! 3.搜索并下载ghost版系统文件存放到电脑中. 第二步: ...
- Spring Boot + thymeleaf 后台与页面(二)
Spring Boot推荐使用thymeleaf模板完成与页面的交互(已不支持JSP某些特性,不推荐JSP) 步骤 在一个Spring Boot Web项目基础上,也可以参考我前一篇文章建立的项目 1 ...
- Java代理:静态代理、动态代理
要理解动态代理,需要先理解反射(http://www.cnblogs.com/Donnnnnn/p/7729443.html) 通俗理解: 在很多底层框架中都会用得到,比如struts,Spring等 ...
- sublime text3 常用配置
. 打开Preferences菜单,并选择 Browse Packages… . 系统会打开Sublime Text 的Packages文件夹,回到上一级菜单,然后打开Installed Packag ...
- jstree使用新的
1.首先准备jstree树的dom元素 <p id="flowList_ul" class="flowList_ul"></p> 2.初 ...
- Problem(I) STL - 灵活的线性表
Description 数组和链表是我们熟知的两种线性结构,但是它们不够灵活(不能同时实现直接插入.删除和访问操作),给你若干种操作,你能通过一种灵活的容器,实现它们的功能吗? 操作1:Build a ...
- jmeter中测试接口
本文主要介绍在jmeter中测试接口:主要从以下几个方面进行说明: 1.jmeter简介 2.jmeter怎么做接口测试 3.jmeter进行参数化的几种形式 4.jmeter中处理乱码方法 5.jm ...
- Oracle数据库三种备份方案
Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP).热备份和冷备份.导出备件是一种逻辑备份,冷备份和热备份是物理备份. 一. 导出/导入(Export/Import) 利用 ...