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++知识库 -> 10天学会C语言——流程控制 -> 正文阅读

[C++知识库]10天学会C语言——流程控制

选择与判断语句

二选一,if()...else...?

if()...else...? ()中为条件判断,()中的结果为bool变量。所以一般用关系运算作为内容,关系运算的返回值是bool变量,比如>,<,>=,<=,==.!=等关系运算符。

逻辑运算符与&& 或|| 非!,用于bool变量之间的运算,结果仍然是bool变量。

注意:对于!,!0=1,!!0=0;那么!-2和!2都等于0;除0以外的所有数的逻辑判断都是1;

#include<stdio.h>
int main(){
	int a=-20;
	int b=20;
	int c=0;
	if(!a){
	printf("对于非-20运算结果为true\n");
	}
	else{ 
    printf("对于非-20运算结果为false\n");
	}
	if(!b){
	printf("对于非20运算结果为true\n");
	}
	else{ 
    printf("对于非20运算结果为false\n");
	}
	if(!c){
	printf("对于非0运算结果为true\n");
	}
	else{ 
    printf("对于非0运算结果为false\n");
	}
	return 0;
}

多选一,if()...else if()...else if()... else...

类似于if()...else...,对比与多个if语句,多个if语句每个if都会判断,不管是否满足条件,直到所有的if全部执行完。但是if else if 运行从第一个if开始,只要找到第一个满足条件的if,就不在执行之后的代码。

多选一,switch()...case...default:

类似于if...else if...else,不同之处是前者按顺序执行,直到找到符合条件的结果结束,后者并列执行,不执行与代码位置无关,可以直接找到符合条件的结果结束。

注意:每个case后需要配套break,如果不配套break,那么会顺序向下执行直到找到break才跳出switch case;若多个分支共享一种方法则可以写在一起。case xx:case yy:? xxxxxx;

? ? ? ? ? swtich()中()可以是字符(本质上是整数)和整型。

建议:对于多分支选择(分支可用整数代替)时,swtich case代码简洁,else if 代码量冗余可读性低。

? ? ? ? ? ?对于多分支选择,但是分支是一个区间时,else if直接用关系运算符判断,更好用,switch case需要手动转换每一个段对应的几个整数。

循环语句

while()与do...while()

while循环,()中是循环条件,只要条件为真就执行代码,条件为假就不执行。一般需要一个控制次数的变量,该变量有三个表达式:初始值,临界值,和变化值。随着循环运行使变量值变化,直到变量值达到临界值,停止循环,避免死循环。

do...while类似,但是无论如何都会执行一次语句,因为do...while是先执行,再判断。而while是先判断,再执行。

for(表达式1;表达式2 ;表达式3 ;)

for循环,将while循环的控制变量的三个表达式,放在了()里面,所以for循环和带三个表达式的while循环无条件等价。for执行过程是先判断表达式2,再执行代码,表达式3永远最后执行(就算提前continue了)。而且for循环()中表达式可以省略,但是三个分号不能省。省去的表达式可以放在循环外面或者里面,只要能正常运行。如果省去了三个表达式但是外部没有添加,成为了for(;;;),那这就是个死循环。

C99标准允许在表达式1中定义初始值,但C89不支持。

tips:对于循环次数,当变量x初始值定为1,循环n次,则循环条件要取=,即x<=n,x++;当变量x初始值定为0,循环n次,则循环条件要取=,即x<n,x++;

结束语句

break和continue

break是直接结束循环,进入下面的其他代码,整个循环已经结束。而continue是结束这一次循环,结束之后又会进入循环,整个循环还在运行。

break一般写在循环体中,作为终止循环的一个条件,循环中可以有多个控制变量来控制循环的停止。

continue一般也写在循环体中,用来筛选掉一些不合目的的循环,最后循环执行完后,就都是想要的数据了。

作业案例

#include<stdio.h>
int main(){
	int m=0;int n=0;
	printf("输入两个正数,求最大公约数和最小公倍数\n");
	scanf("%d%d",&m,&n);
	int i=1;
	while(1){	
		if(i%m==0&&i%n==0){
			printf("最小公倍数是%d\n",i);
			break;
		}
		i++;
	}
	int min=0;
	if(m>=n)min=n;
	else min=m;
	for(int j=min;j>=1;j--){
		if(m%j==0&&n%j==0){
			printf("最大公约数是%d\n\n",j);
			break;
		}
	}
	printf("==============================================\n==============================================\n\n");
	printf("输入一个区间l,r,求出水仙花数\n");
	
	int l=0;
	int r=0;
	while(1){
	scanf("%d%d",&l,&r);
	if(l>r||l<0||r<0){
	puts("请输入正确的区间");
	continue;
	}
	printf("该区间所有的水仙花数为\n");
	break;
	}
	
	for(int i=l;i<=r;i++){
		if(i<100)continue;
		if(i>999)break;
		int g=i%10;
		int s=(i/10)%10;
		int b=i/100;
		if(g*g*g+s*s*s+b*b*b==i)printf("%d ",i);
	}
	return 0;
	
}

?

错误积累:error stray xxx in program //输入了中文字符比如中文分号;

?

? ? ? ? ? ? ? ? ? ?error: x?undeclared (first use in this function)//变量未定义,直接使用;

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

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