IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: 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语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-12-03 12:51:42  更:2021-12-03 12:52:10 
 
开发: 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-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码