C语言-03-流程控制
一、选择结构
1> if语句
使用注意
① if语句中的条件语句,不要把==和=弄混,可以把常量作为左值,
这样的话,在无用=的情况下,编译时会报错
② if语句后若要定义新的变量或者有多条语句要用大括号,避免出现
变量作用域问题和if条件成立时,无法完成预期的功能
③ if后面不要写分号,否则if条件满足时将执行空语句
④ if语句嵌套使用时,else与最靠近自己的未匹配else的if匹配
⑤ 在使用多个if语句时,尽量减少不必要的判断次数,以提升性能
示例(该博文此示例后的所有示例都是用代码块,可在本示例中测试)
include<stdio.h>
int main()
{
int a = 10;
if (10 == a)
{
//若出现多条语句或定义新的变量,要写在代码块内
int c = 10;
printf("a=%d, c=%d\n", a, c);
}
//编译时会报错,错误信息为expression is not assignable
if (10 = a)
;
//if的嵌套使用,else与第二个if匹配
if (a>10)
printf("a>10\n");
if(10 == a)
printf("a=10\n");
else
printf("a!=10\n");
return 0;
}
2> switch语句
1. 使用注意
① switch语句的判断条件严格意义上讲必须是整型值
② 每个case后面,都有一个常量表达式,该式子是在编译期间确定的
常量,不能为任意的变量
③ 每个case标签,只是语句列表的进入点,switch的语句流会贯穿每
一个case标签
④ 在绝大多数的case中都会有一个break语句,break语句可以将语
句列表分块,该块中所有case中的语句都会被执行
⑤ 在每个switch语句中都尽量加上一个default语句,可以检测所有
非法的值
2. 示例
```
{
//根据输入的成绩,输出对应的等级
int score;
int rank;
printf("请输入一个人的成绩(0-100):\n");
scanf("%d", &score);
//求出score十位上的数字,来判断等级
rank =score / 10;
switch (rank)
{
//90分以上为优秀,包括100分
case 10:
case 9:
printf("优秀\n");
break;
//80-89为良好
case 8:
printf("良好\n");
break;
//70-79为中等
case 7:
printf("中等\n");
break;
//60-69为及格
case 6:
printf("及格\n");
break;
//其他情况为不及格
default:
printf("不及格\n");
break;
}
}
3> if和switch对比
- switch语句完成的任务,if语句一定能完成;反之,则不行
- if语句多用于某个区间,switch语句多用于多个离散值
二、循环结构
1> while
使用注意
① while循环最少执行的次数为0次,即一开始循环条件就不成立
② while循环的循环条件必须改变,否则while循环可能变成死循环或
无效循环
③ 用于循环条件的变量在定义是,尽量初始化,否则可能影响循环条
件的第一次判断结果
示例
{
//输出100以内7的倍数的个数
int number = 0; //用于循环条件
int count = 0; //记录个数
while(number < 100)
{
//从1开始,0不算7的倍数
number++;
if (0 == number % 7)
{
count++;
}
}
printf("100以内7的倍数的个数为:%d\n", count);
}
2> do-while
使用注意
① 循环体至少执行一次,这是与while循环最显着的区别
示例
{
//do-while循环,循环体至少执行一次
int i = 5;
do
{
i++;
}while (i < 5);
//while循环,循环体可以一次也不执行
int j = 5;
while(i < 5)
{
i++;
}
}
3> for
使用注意
① for语句的语句一在整个循环中只会执行一次
② 若一个变量只用于for语句,就在for语句的语句一处定义该变量,
可以提升性能
③ for循环中的循环体,相当于循环结构中的一个代码块,在其中定
义的变量,只作用于该代码块,代码块随着循环体的执行而动态的
出现
④ for语句中定义的变量具有整个循环体的作用域,随着循环结构的
结束而消失
⑤ 若某数据由多层结构,每层都是相同类型的数据,一般嵌套使用for
循环
示例
//输出九九乘法表
for(int i = 1;i <= 9;i++)
{
//控制乘法表的行数
for (int j = 1; j <= i; j++)
{
//控制乘法表的列数
printf("%dx%d =%2d\t", i, j, i*j);
}
//每行结束要换行
printf("\n");
}
4> continue和break在循环结构中的应用
- continue跳出本次循环,继续执行下一次循环,可用于switch语句
- break跳出内层循环,继续执行外层循环,若是最外层循环,结束循环,只能用于循环结构
C语言-03-流程控制的更多相关文章
- C语言-03流程控制
1.选择结构 char c = '+'; ; ; // 如果要在case后面定义新的变量,必须用大括号{}包住 注意变量的作用域的紊乱 if语句不加括号时,也要注意此问题 switch (c) { c ...
- 黑马程序员——C语言基础 流程控制 选择结构和循环结构
---恢复内容开始--- Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)流程控制 1> 顺序结构:默认的流程 ...
- c语言的流程控制
1. 流程控制 ● 顺序结构:默认的流程结构.按照书写顺序执行每一条语句. ● 选择结构:对给定的条件进行判断,再根据判断结果来决定执行哪一段代码. ● 循环结构:在给定条件成立的情况下,反复执行某一 ...
- JavaSE学习笔记03流程控制
Java流程控制 1.顺序结构 java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句往下执行. 顺序结构是最简单的算法结构,它是任何一个算法都离不开的一种基本算法结构. 2. 选择结构 ...
- 【学习笔记】【C语言】流程控制
顺序结构:默认的流程结构.按照书写顺序执行每一条语句. 选择结构:对给定的条件进行判断,再根据判断结果来决定执行哪一段代码. 循环结构:在给定条件成立的情况下,反复执行某一段代码.
- PL/SQL 03 流程控制
--IF语法IF condition THEN statements;[ELSIF condition THEN statements;][ELSE statements;]END IF; -- ...
- Go语言的流程控制(条件,选择,控制,跳转,闭包)
1.条件语句: 跟C和python又不同了Go的if -else是这样的 if a<5{ return 0 } else { reutrn 1 } 1.条件不需要用括号括起来 2.左边的花括号必 ...
- 从头开始-04.C语言中流程控制
分支结构: if语句:当条表达式满足的时候就执行if后面大括号中语句 三种格式: if,if else , if else if else 特点:1.只有一个代码块会被执行 2.若有else那么必有一 ...
- Go语言流程控制(六)
go语言的流程控制主要有if , for和switch. if else(分支结构) go语言的if判断: func main() { score:=65 if score>=90{ fmt.P ...
- java 基础one ---运算符and流程控制
首先java这个了解下java的基础 首先java文件都是以.java结尾的 然后 他所有的内容都是有一个入口的就是放在了public static void main(String [] args ...
随机推荐
- 玩转PowerShell第一节——【后台任务处理】-技术&分享
概述 相信大家对后台任务处理不陌生,比如.Net的后台线程处理,Java的线程处理等等. 而当我们用PowerShell这个强大的工具时怎么样开启后台任务呢,以及怎样处理这些任务呢,本篇将会告诉你Po ...
- C++ 多态的实现原理与内存模型
多态在C++中是一个重要的概念,通过虚函数机制实现了在程序运行时根据调用对象来判断具体调用哪一个函数. 具体来说就是:父类类别的指针(或者引用)指向其子类的实例,然后通过父类的指针(或者引用)调用实际 ...
- Android View之用户界面...
PS:Android的控件真的是很多...现在还在忙到控件...也是神了.... 学习内容: 1.Spinner下拉菜单... 2.AutoComplete TextView自动完成文本框... 1. ...
- JS&CSS文件请求合并及压缩处理研究(一)
在我们日常的网站开发工作中,一个页面难免会引用到各种样式及脚本文件.了解Web开发的朋友们都知道,页面引用的每一个: <link href="style.css" rel=& ...
- Android注解编程的第一步---模仿ButterKnife的ViewBinder机制
ButterKnife的使用极大方便了Android程序员的开发,实际上,我们可以自己模仿一下实现. 首先就是要了解Java注解的使用. 我们首先要声明一个@interface,也就是注解类: @Ta ...
- DIV+CSS常用网页布局技巧!
以下是我整理的DIV+CSS常用网页布局技巧,仅供学习与参考! 第一种布局:左边固定宽度,右边自适应宽度 HTML Markup <div id="left">Left ...
- ActiveMQ学习(二)——MQ的工作原理
如图所示 首先来看本地通讯的情况,应用程序A和应用程序B运行于同一系统A,它们之间可以借助消息队列技术进行彼此的通讯:应用程序A向队列1发送一条信息,而当应用程序B需要时就可以得到该信息. 其次是远程 ...
- ADO.NET常用对象的基础概念强化
1.Command对象 1.1 ExcuteNonquery---执行非查询语句,返回受影响的行数,在新增,删除,修改的时候,如果我们要返回结果集那么就不能使用它了: 1.2 ExcuteScalar ...
- 【.NET框架】Dapper ORM 用法—Net下无敌的ORM
假如你喜欢原生的Sql语句,又喜欢ORM的简单,那你一定会喜欢上Dapper这款ROM.点击下载 Dapper的优势: 1,Dapper是一个轻型的ORM类.代码就一个SqlMapper.cs文件,编 ...
- .Net实现微信公众平台开发接口(三) 之 “信息回复”
对于每一个POST请求,开发者在响应包(Get)中返回特定XML结构,对该消息进行响应(现支持回复文本.图片.图文.语音.视频.音乐).请注意,回复图片等多媒体消息时需要预先上传多媒体文件到微信服务器 ...