| |
|
开发:
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语言分支语句 -> 正文阅读 |
|
[C++知识库]C语言分支语句 |
其实顺序结构,选择结构,循环结构就能干掉生活中大多数的问题。 分支语句有两种,if与switch(开关)语句 循环语句有:while,for,do while 什么是一个语句?~;这就是一条语句,多是一分号一语句 if(结果为真,非0的表达式) 语句1; else if(表达式2) 语句2; else 语句3; 上菜: #include<stdio.h> int main() { int age = 17; if (age >= 18) printf("成年"); else printf("未成年"); return 0; }//以上为if else训练,注意此if后没有;打了;else会匹配不上,以后的else要是想匹配if,都需要if后面无; 那我想说“未成年不能谈恋爱”,可不可以这样打? #include<stdio.h> int main() { int age = 18; if (age >= 18) printf("成年"); else printf("未成年"); printf("不能谈恋爱"); return 0; } 不能啊,打印出来是:成年不能谈恋爱,原因是if与else默认只对其后面的一句话生效,当超过这一句话,else就管不住了,所以这里只略过了打印未成年,不能谈恋爱却紧接着打印出来了 那我就是想把不能谈恋爱和未成年绑定在一起,怎么写呢?上菜: else { printf("未成年"); printf("不能谈恋爱"); } 用大括号给它括在一起,就能改变else的默认作用范围 else if 上菜: int main() { int age = 500; if (age > 18 && age < 30) printf("年轻人"); else if (age >= 30 && age < 50) printf("中年人"); else if (age >= 50 && age < 70) printf("中老年人"); else if (age >= 70 && age < 100) printf("老年人"); else if (age >= 100 && age < 120) printf("长寿老人"); else printf("仙人"); return 0; }//以上为else if训练,注意if后面想接else,if后面必不能打; ps:为什么else if()里面不能打18<=age<30?这是错误的代码,如果你输入30以上的数字,仍然会打印年轻人, 因为这个数进来,发现>=18了吧,此时为真,结果就变成1了,结果1又<30,直接第一行就满足条件直接打印了 关于多个if与else的匹配问题 来,上菜: //int main() //{ //????????int a = 0; //????????int b = 1; //????????if (a > 0) //????????if (b >= 1) //????????????????printf("呵呵"); //????????else //????????????????printf("吼吼"); //????????return 0; //}//此为else匹配练习,最终打印结果为空白一片,原因是第一个if就没进来,else只匹配最近的if,匹配的第二个if,之后的程序就寄了。 关于两个值比较后选择打印的问题,上好菜: int main() { int a = 3; if (5 == a)//注意,此处必不能写;不然会无条件打印呵呵,以后遇到if还是能不写;就不写;吧 printf("呵呵"); return 0; }//此处,打印结果为一片空白,很简单为甚,因为a不等于5,就不打印 那我if中又为什么要5==a这样写呢?理由是如果写a==5,容易漏写,如果写a=5会把5赋值给a,造成无条件打印呵呵,这就是bug,而这样写呢,漏写一个=,程序根本运行不了,因为你不能把a赋值给5吧,这就是良好的代码规范避免书写错误与bug。(5==a能运行,因为这里不是赋值,是判断数值) 选择语句应用: 1.判断一个数是否为奇数 2.输出1-100之间的奇数 上菜,第一题: //判断一个数是否是奇数练习,%就是除号 //int main() //{ //????????int a = 0; //????????scanf("%d",&a ); //????????if (1 == a % 2) //????????????????printf("奇数\n"); //????????else //????????????????printf("偶数\n"); //????????return 0; //}//真是个成功的程序 上好菜!第二题: //int main() //{ //????????int line = 0; //????????while (line <= 100) //????????{ //????????????????if (1 == line % 2) //????????????????????????printf("奇数%d\n",line); //????????????????line++; //????????????????if (0 == line % 2) //????????????????????????printf("偶数%d\n",line); //????????} //????????if (line > 100) //????????????????printf("程序执行完毕"); //????????return 0; //???????? //}//成功的程序!!!!!!!!!!!!!!!!!!!!我们是,冠军! 分支语句中的switch语句 格式: switch(整形表达式) { 语句项(case) } 上菜:(由于switch多用输入,所以要用scanf) int main() { int day = 0; scanf("%d", &day); switch (day) { case 1 : printf("星期一\n"); case 2 : printf("星期二\n"); case 3 : printf("星期三\n"); } return 0; }//switch语句记得写break 那为什么会全打印星期一到星期三呢?输入的是几,仅仅决定的是从哪个入口进,case语句在没人阻止的情况下会一直往下执行,所以要有人阻止——即break,上菜: int main() { int day = 0; scanf("%d", &day); switch (day) { case 1 : printf("星期一\n"); break; case 2 : printf("星期二\n"); break; case 3 : printf("星期三\n"); break; } return 0; } switch语句的细节: 必须整形,浮点型float与double不行 包括case也得写1不能写1.0,n也不行,只能是常量和常量表达式,比如1+0就行,但字符行(字符本身存储就用的as科码,算整形) 如果我要是想从1-5都打印一个数,可以考虑去掉break “输入错误提示语句” default语句,上菜: int main() { int day = 0; scanf("%d", &day); switch (day) { case 1 : printf("星期一\n"); break; case 2 : printf("星期二\n"); break; case 3 : printf("星期三\n"); break; default: printf("输入错误,请输入1-3之间的数字"); break; } return 0; }//switch语句记得写break 这时,再有人傻乎乎的输入个1-3以外的数字,就会有提示了,没有顺序问题,放前面也一样。 break会结束离他最近的switch语句,这一点与else if的匹配同理 |
|
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:56:41- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |