| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> 初始C语言-2.C语言程序的四种基本结构 -> 正文阅读 |
|
[C++知识库]初始C语言-2.C语言程序的四种基本结构 |
1.3上述结构叫做双分支结构
?**这里再给大家一个例题自己尝试。
有的人就会问了,为啥单分支结构只是if结构?不能是else结构吗?? ? ? ? ??不行 if的英文意思是”如果“,没有”如果“哪里来的”另外“? 即if可以单独使用,而else不行。
1.4什么叫嵌套?
这样看确实会有点眼花缭乱,我太懒了。。。 顾名思义,嵌套就是在一个里面加了其他的东西,可能就加了一个,也可能加了好多。只要你想,你可以一直循环着嵌套。
那么多if和else,要怎么才能知道,谁跟谁是互相配对的呢? 嵌套时,else总与最靠近它的,没有与别的else配对过的if相匹配。 当对某个问题的限制条件仍有限制时,可以选择if的嵌套结构。
这也是一个很好的例题,希望大家能搞懂。?
多分支结构与嵌套结构往往是用的比较多的;
else if可以写好多个,依题目而定。当问题有好多个限制条件把这个问题分为若干个小部分时,可以选择多分支结构。
例如这个题目,题目要么对,要么错,但是错的时候却有太大和太小,所以我选择用多分支结构。
因为浮点型数字并不能精准存放,它也不能拿出来作为比较的量。 总的来说,switch结构就是比较方便一点的多分支结构,多分支结构一旦分支太多,可能会导致错误,因为if else实在太多,同时程序的可读性也不强。switch相比多分支结构更简洁,清晰。 但是switch的限制也比较大,只能用于整型。 着重讲一下这个default,这个是很必要的,如果switch接收到的量不是case中的任何一个,我们又想让程序有操作,也便于我们找出错误的地方,所以选择这个default,意思就是如果上面的case一个都不满足,就执行它;
当这个时候,程序先执行除了default的代码,最后执行default。 如果default后面没有break,程序会执行default下面的代码,无视case匹配,直到又遇到break; 这是一个很好的解释例子,这个代码中case的顺序也不是按顺序来的,default也不按常理出牌,但是最后仍然输出了-1,但是为什么又输出了3??
这里用的是比较少的一个表达式因为运用条件比较苛刻,只有当一个问题有两种情况时才能使用,一般到了后面就很难遇到这么简单的题目了; 表达式1?表达式2:表达式3;条件运算表达式由?:;组成,是C语言中提供的唯一一个三目运算符 。 ?如上,首先判断n是否大于5,如果n大于5,执行表达式2,如果小于等于5,则将n赋值为0; 此刻就相当于一个双分支结构。这个并不常见,就不做过多讲解了。
如果没猜错的话,循环绝对会是大部分同学的噩梦,不管是初学者还是学过一段时间的人,学过好久的人也免不了在这里踩坑,一定一定要用心认真搞清楚!!! ? ? 循环主要分为两种,一种是for循环一种是while循环,两者实际上是相通的,只有在某种情况下谁更合适而已。?
for循环是C语言中比较常用的一种结构了,尤其在数组中,更为明显。
我们来分析一下这个结构,如下图,我也会做一些补充。
......那如果是表达式2缺失呢?我们一定要学会一种思维,想问题的时候要追根溯源,例如这里,表达式2缺失会怎么样?我们选择溯源去想,表达式2的作用是什么呢?表达式2的作用是判断。。也叫做循环的限制语句,如果限制条件没有了,系统会默认表达式二为真,则会很容易造成死循环,这个时候就不得不讲一讲break和continue命令了;
continue常用于if结构中;? ?由上可知,除非有break或者continue,你就等着死循环吧。 如果,表达式3缺省呢?这就跟表达式1一样了,这里不写,其他的地方也要写,不写就等着死循环吧。
?
两个循环结构中虽然都有while,都是也有不相同。 1.while循环可能一次都不发生,只要表达式为假。 2.do-while一定至少发生一次,先执行后判断;do-while只是一条单语句,所以后面要加;分号。 试着把这些例子看懂,能看懂就很棒了;
这可太简单了,就是for里面再加一个for(俗称套娃),当然,可以无限套。 2.其他的循环嵌套也都是这样,都是一个套一个的。直接上例题吧。 还有一些,循环与分支结构的互相嵌套,这个概念还是很好理解的,就直接上题了;
这个也要好好看看。 ? 上面几道题都要好好看看。
1.函数是C语言程序的基本组成单元,迄今为止编写的每一个程序都需要用到函数。 基本结构就是函数声明,函数调用,加上函数定义。
我们这里说的函数都是自定义函数,当然,那些系统函数也是人写的,身份不一样而已。
问题来了,为什么要在main函数之外去写这个自定义函数。 *****敲黑板的内容来了: 函数定义不能嵌套,至于为什么,我也不知道。
简单来说,形参就是形式参数,在声明中,变量名是可有可无的,在自定义函数入口处其实也可以省略,只要自定义函数中不用到那个变量,当然,一般都是要用到的。 那么实参呢?实参就是实际接受到的数据,这个是必须要有名字的,不然怎么将数据传到里面? 那么根据我上面的解释,你们知道在上面那个代码中,哪个是形参哪个是实参吗? 没错,自定义函数后面接的括号里面的内容就是形参,函数声明中的也是形参,而函数调用中的参数就是实参。 说省略的问题只是为了让大家了解这个知识,而不是提倡大家去省略,一定不要以为这样写的少就很帅,一个好的程序跟他的可读性还是有很大关联的。
这个在之后写大项目时便能知道函数的方便之处,其实函数的用处是很大的,它给了我们更多的选择,是我们在处理问题时也更加的方便。 话不多说,直接上代码。
还有要注意的就是函数的返回值问题,首先,函数一次只能返回一个值,再一个就是,新手经常会混淆返回值是谁的这个问题,其实很简单,主函数调用时,要的是什么值,就返回什么值。
首先,参数只能由实参传向形参,形参的改变是无法干扰实参的; ?见上面的代码; 说的都差不多了,再给大家拓展一下;有关静态变量的问题(static) ?
就像形参为什么不能影响实参? ?系统会给自定义函数开辟一个空间,当自定义函数结束后,空间就会被释放。存储的变量就也被释放了。所以形参不能影响实参。如果我加上了static,我就将自定义函数中的变量放到了静态区中,成了静态变量。知道main函数执行完毕,变量空间才会被释放。 希望大家能有所收获!!!一定要把我上面写的代码看懂哦,这样基本上这些结构你就能搞清楚了,这类问题便很难难到各位了。 |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 10:00:58- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |