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语言】以深厚地基筑伟岸高楼-基础篇(六)

引入循环概念

来看一个小题目

计算输入数字的位数(4位数及以下的正整数):

#include <stdio.h>
int main()
{
	int number,n;
	printf("判断数的位数,限制四位最高,请输入一个数字:");
	scanf("%d", &number);
	if(number>999){
		n = 4;
	}else if(number>99){
		n = 3;
	}else if(number>9){
		n = 2;
	}else if(number>0){
		n = 1;
	}
	printf("这个数的位数为:%d", n);
	return 0;
}

这样一个代码就能够实现我们的目的。补充知识:== 计算机在运行程序的时候是按步骤来运行的 ==。
所以如果我们仅仅使用if语句来写这个问题的话,凡是写成下边这个样子的,都是不知道上边这一句话的含义。

#include <stdio.h>
int main()
{
	int number,n;
	printf("判断数的位数,限制四位最高,请输入一个数字:");
	scanf("%d", &number);
	if(number>999){
		n = 4;
	}
	if(number>99){
		n = 3;
	}
	if(number>9){
		n = 2;
	}
	if(number>0){
		n = 1;
	}
	printf("这个数的位数为:%d", n);
	return 0;
}

** 这个代码就是错误示范 **这个代码凡是输入4位数,它的输出结果都是1。
这个题目仅仅是问了4位数以下的,那么,任意范围的数,该怎么办呢?我们需要无限的写if-else语句吗?
并不需要无限的去重复这个单一的代码。
我们只需要一个可以重复做这件事的代码就可以了。

我们需要一个循环

什么是循环呢?循环就是一件事不断的重复的做。那让我们来看看我们接触的第一个循环,while循环

while 循环

循环主体:
while(<循环条件>){
……
……
}
while 循环呢,就是一个事情重复做,那么我们实现上边这个代码需要怎么做呢?我们需要重复对接收的整数进行除以10的行为。
那么代码该怎么写呢?
首先
我们需要让用户输入一个数字,并且我们有地方来储存这个数字,于是我们需要一个scanf以及一个变量:

int x;
scanf("%d", &x);

接下来我们需要对接收到的这个整数进行除以10,并且得到除以10之后的结果,并不断重复这个行为,但是要知道重复的条件,是这个整数大于10,我们用代码来实现一下看看:

x /= 10while ( x>10 ){
x/=10;
}

这样我们就完成了我们重复做除以10的这个目的,但是我们该怎么计算位数呢?
我们需要再来定义一个变量来计算我们接收到的整数除以10的次数,来以此计算该数的位数
于是我们可以这样写:

int x;
int n = 0;

scanf("%d", &x);
n++;
x /= 10;
while ( x>10 ){
	x /= 10;
	n++;
}

于是,我们的主题部分就完成了,
接下来我们需要打印出我们的结果,所以,完整的代码如下:

#include <stdio.h>
int main()
{
	int x;
	int n=0;
	scanf("%d", &x);
	n++;		//这两步必须要有 
	x /= 10;	//因为0这个特殊情况,0的位数为1,0无法进入循环 
	while ( x>0 ){
		n++;
		x /= 10;//"/="含义举例:a/=b 等价于 a=a/b 
	}
	printf("%d\n", n);
	return 0;
}

对于代码中一些细节的小问题,通过注释的方式写在了代码块之中。
这样,这个题目我们就用循环解决了。

小补充:

  • while循环,如果我们把while翻译作“当”,那么一个while循环的意思就是:当条件满足时,
    不断地重复循环体内的语句。
    循环执行之前判断是否继续循环,所以有可能循环一次也没有被执行
    (循环条件不满足,此条件与if语句的条件意思一样。)
    如果我们想看到循环的过程(数字算法循环),那么我们可以在循环中,插入一个printf来打印出
    我们所希望看到的变量!

do-while 循环

do -while 循环主体:
do
{
……<循环体语句>……
}while(<循环条件>);
记住do-while循环在末尾要加分号“ ; ”
结束一个语句,要么是花括号,要么是分号。do-while是先进循环体,再判断条件是否满足。

do-while循环呢,就是:
在进入循环的时候不做检查,而是在执行完一轮循环体的代码之后,再来检查循环的条件是否,满足,
如果满足则继续下一轮循环,不满足则结束循环。
do-while循环和while循环很像,区别是在循环体执行结束的时候才来判断条件。也就是说
,无论条件如何,程序都会执行至少一遍,然后再来判断条件。与while循环相同的是,
条件满足是执行循环,条件不满足时结束循环。

运用do-while语句完成小题目

我们直接来运用一下do-while语句,在运用过程中去理解它
还是上边的那个小题目,让我们用do-while语句来解决它吧
看代码:

#include <stdio.h>
int main()
{
	int x;
	int n = 0;
	scanf("%d", &x);
	do {
		n++;      //do-while语句是先做一遍循环
		x /= 10; //所以这两个语句可以直接放在do-while语句之中
	} while( x>0 );
	printf("这个数的位数是:%d" , n);
	return 0;
}

与while语句的区别很明显的是,我们不需要在将语句

n++;

和语句

x /= 10;

放在循环外边了,这是面对这类问题时,do-while语句比while语句方便理解的一处地方。

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

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