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语句。

一个基本的if语句由一个关键字if开头,跟上在括号里 的一个表示条件的逻辑表达式,然后是一对大括号“{}”之间的若干条语句。如果表示条件的逻辑表达式的结果为true,那么就执行后面跟着的这对大括号中的语句,否则就跳过这些语句不执行,而继续下面的其他语句。

if( 条件 )
{

...若条件成立则执行该操作
}

找零计算器

int main()//找零计算器
{
	//初始化
	int bill = 0; int price = 0;
	//输入票面 价格
	printf("请输入票面。\n");
	scanf("%d", &bill);
	printf("请输入价格。\n");
	scanf("%d", &price);
	//输出找零
	if (bill > price)
	{
		printf("应找零%d元。", bill - price);
	}
	else
		printf("金额不足,还需%d元。",price-bill);
	
	return 0;
}

//注释:插入在程序代码中,用来向读者提供解释信息。它们对于程序的功能没有任何影响,但是往往能使得程序更容易被人类读者理解。

/**/注释:延续多行的注释,要用多行注释的格式来写。多行注释由一对字符序列“/*”开始,而以“*/”结束。也可用于一行内部的插入

?注释使程序更加清晰明了?

比较两数大小

int main()//比较两数大小
{
	int a, b;
	int MAX = 0;
	printf("请输入两个不同的正整数。\n");
	scanf("%d %d", &a,&b);
	if (a > b)
	{
		MAX = a;
	
	}
	else
	{
		MAX = b;
	}
	printf("%d更大", MAX);
	return 0;
}
int main()
{
	int a,b;
	printf("输入两个不相等正整数。\n");
	scanf("%d %d", &a, &b);
	int MAX = a;
	if (b > a)
	{
		MAX = b;
	}
	printf("%d更大。", MAX);
	return 0;
}

一个基本的if语句由一个关键字if开头,跟上在括号里的一个表示条件的逻辑表达式,然后是一对大括号"{}"之间的若干条语句。如果表示条件的逻辑表达式的结果不是零,那么就执行后面跟着的这对大括号中的语句,否则就跳过这些语句不执行,而继续下面的其他语句。? ?

if (total>amount)
    total+=amount+10;

if语句条件之后的语句可以不在大括号之内,?如果没有{}就只会执行if,else后的第一个语句,反之就能执行多个语句;但有时候从美观的角度而言,只有一句语句时候,可以省略;从代码可读性而言,{}能提高代码的可读性;如果if或者else后面只有一条语句可以不用加{},有多条就要加。但为了防止忘掉{},无论它后面有多少条语句都加上{},这是一种习惯。而要注意的是if语句这一行结束的时候并没有表示语句结束的“;”,而后面的赋值语句写在if的下一行,并且缩进了,在这一行语句结束的时候有一个表示语句结束的“;”。这表明这条赋值语句是if语句的一部分,if语句拥有和控制这条赋值语句,决定他是否要被执行。

int main()//计算薪水
{
	const double RATE = 8.25;
	const int STANDARD = 40;
	int hour = 0;
	double pay = 0.0;
	printf("请输入工作时间。\n");
	scanf("%d", &hour);
	if (hour > STANDARD)
		pay = (hour - STANDARD) * RATE * 1.5 + STANDARD * RATE;
	else
		pay = hour * RATE;
	printf("您的工资为%lf元。", pay);
	return 0;
}
int main()成绩合格
{
	const int PASS = 60;
	int grades = 0;
	printf("欢迎您,请输入孩子的成绩。\n");
	scanf("%d", &grades);
	printf("您孩子的成绩为%d分\n", grades);
	if (grades >= PASS)
		printf("恭喜您,成绩通过!\n");
	else
		printf("很遗憾,成绩未通过,距离及格仅差%d分,请再接再厉。\n",PASS-grades);
	printf("再见!\n");
	return 0;
}

循环

if语句可以判断条件是否满足,满足时才做相应的动作,而循环语句可以在满足条件时,不断地重复执行一些动作。

重复执行的语句(循环语句)可以多次执行其他语句,它检查一个逻辑条件是否满足,只在满足的时候执行它的循环体。

while语句是一个循环语句,它会首先判断一个条件是否满足,如果条件满足,则执行后面紧跟着的语句或语句括号,然后再次判断条件是否满足,如果条件满足则再次执行,直到条件不满足为止。后面紧跟的语句或语句括号,就是循环体。

do-while循环和while循环很像,唯一的区别是我们在循环体执行结束的时候才来判断条件。也就是说,无论如何,循环都会执行至少一遍,然后再来判断条件。与while循环相同的是,条件满足时执行循环,条件不满足时结束循环。

do{? <循环体语句>? ? }

? ? while(<循环条件>);

位数计算(whille循环语句)

#define _CRT_SECURE_NO_WARNINGS ;
#include<stdio.h>
int main()
{
	int x ,n= 0;
	printf("请输入正整数。\n");
	scanf("%d", &x);
	n++;
	x /= 10;
	while (x > 0)
	{
		n++;
		x/= 10;
	}
	printf("该数有%d位.", n);
	return 0;
}

(do while )?

int main()
{
	int n = 0;
	int x;
	scanf("%d", &x);
	do {
		n++;
		x /= 10;
	} while (x > 0);
	printf("%d", n);
	return 0;
}

//最大位数为10,因为示例代码中x的数据类型为int,它在32位计算机中允许存储4个字节,即32位,另外它是有符号类型,而且数据在机器中按补码表示,所以它的理论范围是[-2^31 1, 2^31-1],但是这个范围比32位表示的数字总数少1,且仅仅1(后接31个0)这个数的补码是其自身,所以人为规定它是-2^31。(看不懂)

  • 如果我们把while翻译作“当”,那么一个while循环的意思就是:当条件满足时,不断地重复循环体内的语句。
  • 循环执行之前判断是否继续循环,所以有可能循环一次也没有执行。
  • 条件成立是循环继续的条件。

验证

测试程序常使用边界数据,如有效范围两端的数据,特殊的倍数等 (个位数,10,0,负数)

阶乘计算(for循环语句)

int main()
{
	int n;
	scanf("%d",&n);
	int fact = 1;
	int i = 1;
	for (i = 1; i <= n; i++) 
	{
		fact *= i;
	}
	printf("%d", fact );
	return 0;
}
  • for循环像一个计数循环:设定一个计数器,初始化它,然后在计数器到达某值之前,重复执行循环体,而每执行一轮循环,计数器值以一定步进进行调整,比如加1或减1.
  • for可以读成对于,也就是对于一开始的i=0;当i<n的时候重复做 循环体;每一轮循环在做完循环体内语句后使i+1.
  • 小套路,做求和程序时,记录结果的变量应该初始化为0,而做求积的程序时,记录结果的变量应该初始化为1.
  • 如果循环控制变量(如i)仅在循环中被使用,在循环外没用,那么我们可以把变量i的定义写到for语句里去。(int i=0;i<1;i++0)? C99!
for (i=0;i<n;i++)
{
<循环体>
}
  • 上述for函数的循环次数是n,而循环结束以后,i的值是n。循环的控制变量i,是选择从哪里(0)开始,是判断i<n 还是i>n,对循环的次数循环结束后变量的值都有重要影响

?for==while

for(int i=1;i<=n;i++){
    fact *=i;
}

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ||

int i=1;
while (i<=n){
    fact *=i;
    i++;
}

for(初始动作;条件;每轮的动作){循环体}

  • for中的每一个表达式都是可以省略的 for(;条件;)==while(条件)

循环语句的选择

  • 如果有固定次数——for
  • ?如果必须先执行一次——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-08-06 10:25:04  更:2022-08-06 10:29:09 
 
开发: 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年4日历 -2024/4/25 18:08:14-

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