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语言的语句可以分为以下五类:

1.表达语句 2.函数调用语句 3. 控制语句 4. 复合语句 5.空语句

首先我们认识一下控制语句,控制语句用于控制程序的执行流程,以实现程序的各种结构方式,他们由特定的语句定义符号组成,c语言有九种控制语句:

1.条件判断语句也叫分支语句:if语句,switch语句

2.循环执行语句:do while语句 while语句? for语句

3.转向语句:break语句 goto语句 continue语句 return语句

二、分支语句(选择语句)

人生中面临了很多种选择,比如好好学习,校招能拿好offer,如果不好好学习,回家卖红薯,这就是选择。

2.1 if语句

那么if语句结构是怎么样呢?

if(表达式)   
   语句;
或者
if(表达式)
    语句1;
else
    语句2;
或者
if(表达式1)
    语句1;
else if(表达式2)
    语句2;
else
    语句3;

下面我们用代码来演示一下

?

?2.1.1 悬空else

如果你写了这个代码

?可以看到运行的程序没有打印任何内容,因为else是和离他最近的if匹配

另外,若是这样会导致语法错误

?正确的写法是

所以形成一个好的代码风格非常重要。

2.2 switch语句

switch语句也是一种分支语句

常常用于多分支的情况

switch(整型表达式)
{
   语句项;
}

语句项是什么呢?
那就是case 整形常量表达式:
              语句;

例如

我们发现代码进入case 5后面的case 6和case 7都打印了,所以case一般和break搭配使用,我们再来看看。

这样就可以避免这种情况发生。

2.2.2 default字句

如果所以的表达的值与所有的case标签的值都不匹配怎么办?

我们可以在语句中增加一条default子句,每个switch中只能出现一个default子句,但是它可以出现在语句列表的任何位置,而且语句会像执行一个case标签一样执行default子句。

例如

#include<stdio.h>
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;
	 case 4:
		 printf("星期四\n");
		 break;
	 case 5:
		 printf("星期五\n");
		 break;
	 case 6:
		 printf("星期六\n");
		 break;
	 case 7:
		 printf("星期天\n");
		 break;
	 default :
		 printf("输入错误,请输入1~7的数字\n");
		 break;
	}


	return 0;
}

练习题

#include<stdio.h>

int main()
{
	int n = 1;
	int m = 2;
	switch (n)
	{
	case 1:m++;
	case 2:n++;
	case 3:
		switch (n)
		{//switch允许嵌套使用
		case 1:
			n++;
		case 2:
			m++;
			n++;
			break;
		}
	case 4:
		m++;
		break;
	default:
		break;
	}
	printf("m = %d, n = %d\n", m, n);
	return 0;
}

三、循环语句

3.1 while语句

由于我们的生活中有很多事情是需要我们完成很多次

那我们该怎么做呢?

C语言中引入了:while语句,可以实现循环。

while语句的语法结构是

while(表达式)
    {

      循环结构;
    }

比如我们打印1-100的数字

?3.1.1while语句中的break和continue

由代码结果可以知道,在循环中只要遇到break则直接停止后期所有的循环,直接终止循环。所以:while中的break是用于永久终止循环。?

光标是在不停闪烁的,没有出现按任意键继续,可见是没有结束循环的,所以continue是用于终止本此循环,也就是本次循环中continue后面的代码不会在执行,而是直接转跳到while语句的判断部分,进行下一次循环的入口判断。

?我们来做一道练习

1.写代码将三个整数数按从大到小输出。

例如:

输入:2 3 1

输出:3 2 1

#include <stdio.h>
int main()
{
    int a = 2;
    int b = 3;
    int c = 1;
      scanf("%d%d%d",&a, &b,&c);
    if(a<b)
    {
        int tmp = a;
        a = b;
        b = tmp;
    }
    if(a<c)
    {
        int tmp = a;
        a = c;
        c = tmp;
    }
    if(b<c)
    {
        int tmp = b;
        b = c;
        c = tmp;
    }
    printf("a=%d b=%d c=%d\n", a, b, c);
    return 0;
} //记住if   else if 结果为真则不会继续执行下面的else if了,然而if并列语句可以依次执行

2.写一个代码打印1-100之间所有3的倍数的数字

?3.

给定两个数,求这两个数的最大公约数

例如:

输入:20 40

输出:20

?3.打印1000年到2000年之间的闰年


闰年的条件:如果N能够被4整除,并且不能被100整除,则是闰年,或者能被400整除也是闰年

?4.写一个代码:打印100~200之间的素数

?方法1,从2开始每个数进行试除

方法2.

//上述方法的缺陷:超过i一半的数据,肯定不是i的倍数,上述进行了许多没有意义的运算,因此可以采用如下

// 方式进行优化

// 方法二:每拿到一个数据,只需要检测其:[2, i/2]区间内是否有元素可以被2i整除即可,可以说明i不是素数

代码如下

方法3.可以直接将判断改为sqrt(a),注意引用头文件#incude<math.h>

代码如下

?

优化一下方法3?只要i不被[2, sqrt(i)]之间的任何数据整除,则i是素数,但是实际在操作时i不用从101逐渐递增到200,因为出了2和3之外,不会有两个连续相邻的数据同时为素数所以

?

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-26 12:02:17  更:2021-10-26 12:02:29 
 
开发: 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 5:28:49-

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