C++入门第四课:三大结构

1. 预习知识

计算机编程三大结构:

(1)顺序结构:从上至下,从左至右的执行程序
	  之前所学的程序都是顺序结构
	  
(2)选择结构(分支结构):按条件选择执行某段程序
	需要使用 if(flag) { } 来判断 flag 的真假,
	若为真,着执行接下来 {} 里面的语句,否则不执行。
	
(3)循环结构:循环执行某段程序
	有以下三种方式:
		a. for(int i=0; i<length; i++){ }
		b. while(flag){ }
		c. do{ } while(flag);

(4)补充一个:跳转语句 goto
	goto here;
	here:
		cout<<"2"<<endl;
	=========分割线============
	here:
		cout<<"2"<<endl;
	goto here;

	这两句代码的执行结构可是大不相同的哦!!!
	前者指执行一次,后者循环执行

2. if

先来一段代码

#include<iostream>
using namespace std;

int main(){

	bool flag = true;
	if(flag){
		cout<<"true"<<endl;//true
	}
	
	if(!flag){
		cout<<"false"<<endl;//不执行 
	}
	
	return 0;
} 

所以我们看见使用 if(flag) { } 来判断 flag 的真假,若flag为真,着执行接下来 {} 里面的语句,否则不执行;

#include<iostream>
using namespace std;

int main(){

	bool flag = true;
	
	if(!flag){
		cout<<"false"<<endl;//不执行 
	}else{
		cout<<"true"<<endl;//true
	} 
	
	return 0;
} 

由于 !flag = false,所以不执行其后面{ }的内容,直接执行 else后面{}的内容;

#include<iostream>
using namespace std;

int main(){

	bool flag = true;
	
	if(!flag){
		cout<<"false1"<<endl;//不执行 
	}else if(flag){
		cout<<"true1"<<endl;//true1
	}else{
		cout<<"false2"<<endl;//不执行 
	}
	
	return 0;
} 

分析:执行结果只输出了:true1,是因为!flag=false,false1的那段语句不执行,并且 flag = true,当 else if(flag)判断时为真,执行true1的语句,由于此时语句已经执行过了,就不再执行else及其之后的程序了。

练习:看以下程序,会输出什么结果:

#include<iostream>
using namespace std;

int main(){

	bool flag = true;
	
	if(!flag){
		cout<<"false1"<<endl;
	}else if(flag){
		cout<<"true1"<<endl;
	}else if(flag){
		cout<<"true2"<<endl;
	}else{
		cout<<"false2"<<endl;
	}
	
	return 0;
} 

分析:flag = true; !flag = false;

所以 false1 不执行,true1 执行,由于 true1执行了,就不再判断接下来的 else if,所以 true2 不执行,false2 不执行。
所以该程序输出结果:true1

3. for

for(预定义条件 ; 判断条件; 执行代码 ){ 
	执行代码
}

预定义条件和执行代码都可以省略,唯独判断条件不可省略。
比如:
for( ; false; ){} //由于判断条件为假,所以不执行
for( ; true; ){} //由于判断条件为真,所以循环执行

练习:使用for输出1~10

#include<iostream>
using namespace std;

int main(){

	for(int i=1; i<=10; i++){
		cout<<i<<" "; 
	}
	return 0;
} 

4. while

while循环有2种,当型循环和直到型循环,主要区别是执行和判断执行条件的先后不同;
当型循环:while(flag){} //先判断,再执行
直到型循环:do{}while(flag); //先执行一次,再判断

练习:看程序写结果,自己先做,最后有答案。

while 练习(1):下列程序输出什么结果

#include<iostream>
using namespace std;

int main(){

	bool flag = true;
	int i = 0;
	while(flag){
		cout<<"i = "<<i++<<endl;
	}
	return 0;
} 

while 练习(2):下列程序输出什么结果

#include<iostream>
using namespace std;

int main(){

	bool flag = true;
	int i = 0;
	while(flag){
		cout<<"i = "<<i++<<endl;
		if(i==5){
			flag = false;
		}
	}
	return 0;
} 

while 练习(3):下列程序输出什么结果

#include<iostream>
using namespace std;

int main(){

	bool flag = false;
	int i = 0;
	while(flag){
		cout<<"i = "<<i++<<endl;
	}
	return 0;
} 

do…while 练习(4):下列程序输出什么结果

#include<iostream>
using namespace std;

int main(){

	bool flag = false;
	int i = 0;
	do{
		cout<<"i = "<<i++<<endl;
	}while(flag);
	return 0;
} 

do…while 练习(5):下列程序输出什么结果

#include<iostream>
using namespace std;

int main(){

	bool flag = true;
	int i = 0;
	do{
		cout<<"i = "<<i++<<endl;
		if(i>=5){
			flag = false;
		}
	}while(flag);
	return 0;
} 

练习答案

while 练习(1):下列程序输出什么结果
	bool flag = true;
	int i = 0;
	while(flag){
		cout<<"i = "<<i++<<endl;
	}
(1)答案:由于flag=true,所以一直循环输出: i=?

while 练习(2):下列程序输出什么结果
	bool flag = true;
	int i = 0;
	while(flag){
		cout<<"i = "<<i++<<endl;
		if(i==5){
			flag = false;
		}
	}
(2)答案:当i=5时,flag=false,所以输出结果为:
		i = 0
		i = 1
		i = 2
		i = 3
		i = 4

while 练习(3):下列程序输出什么结果
	bool flag = false;
	int i = 0;
	while(flag){
		cout<<"i = "<<i++<<endl;
	}
(3)答案:由于flag=false,所以while循环不执行,无输出。


do...while 练习(4):下列程序输出什么结果
	bool flag = false;
	int i = 0;
	do{
		cout<<"i = "<<i++<<endl;
	}while(flag);
(4)答案:虽然 flag = false,但是是直到型循环,会先执行一次,所以输出结果为:
	i = 0

do...while 练习(5):下列程序输出什么结果
	bool flag = true;
	int i = 0;
	do{
		cout<<"i = "<<i++<<endl;
		if(i>=5){
			flag = false;
		}
	}while(flag);
(5)答案:当i>=5时,flag = false,所以输出结果为:
			i = 0
			i = 1
			i = 2
			i = 3
			i = 4
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值