第四单元 循环结构程序设计
先导:循环结构有三种:while语句,do-while语句,for语句.
1.while语句含义(当型循环)
while(表达式){
循环体
}
例如:
int i=1;//(起计数作用)
while(i <= 10){//重复n次,‘10’表示重复次数printf("@") ;
i++;}
注意:在while语句中,要注意循环条件,表达式的书写以及循环体中循环控制变量的更新,从而避免死循环。
应用实例:
//p4-1-3
#include<iostream>
using namespace std;
int main() {
int x,s = 0;
cin>> x ;
while(x != 0) //也可简写成 while(x){
if(x > 0) s++;
cin >> x;
cout<<s<<endl;
}
return 0;
}
其中,按crtl+z+enter输出执行结果。
2.do-while(直到型循环)
do{
循环体
}while(表达式);
例1:
//p4-2- 1
#include<cstdio>
using namespace std;int main() {
int i=1;do {
printf ("@") ;
i++ ;//缺少即无敌循环
}while(i <= 10) ;
return 0 ;
}
例2:求整数各个位上的和
int n,s=0;
scanf(“%d”,&n);
do{
s+=n%10;
n/=10;
}while(n!=0)
printf(“%d\n”,s);
3.for语句
应用条件:重复执行的操作次数是固定的,已知的。
for(表达式1;表达式2;表达式3){
循环体
}
注意:循环变量可在循环语句中定义,但其作用空间只在循环语句中。能用int用int,能用double用double。
4.循环嵌套
例如:输出矩形。
//p4-4-1
include<cstdio>
;using namespace std;
int main(){
int n,m;
scanf ("%d %d",&n, &m) ;
for(int i=1;i<=n; i++) {
for(int j = 1; j <= m; j++)
printf ("*") ;
printf("\n") ;
}
return 0;
}
5.break和continue语句
在循环结构中,有时需要提前跳出循环体,或者忽略本次循环的后续语句,而去执行下一次循环。
1)break语句。
例1:
//p4-5-1
#include<iostream>
using namespace std;
int main(){
int n,ans =0;
cin >> n;
for(int i=1;i<=n;i++;){
int flag1 =1,flag2 = 1;
if(i %7==0) flag1= 0;
int x=i;
while(x) {
if(x%10== 7) {flag2 = 0; break;}
x =x/10;
}
if(flag1 && flag2) ans++;
}
cout <<ans << endl;
return 0;
}
2)continue语句在循环语句中遇到continue语句,就会忽略本次循环的后续语句而去执行下一次循环。
例如:
//p4-5-2
#include<iostream>
using namespace std;
int main() {
int n,ans = 0;
cin>>n;
for(int i=1;i<=n;i++){
int flag=1;
if(i %7== 0) continue;
int x=i;
while(x) {
if(x % 10== 7) {flag = 0; break; }
x =x/10;
}
if(flag) ans++;
}
cout<ans<<endl;
return 0;
}
6.程序的调试与跟踪
1)静态查错
2)通过添加输出语句调试程序
收获:学会了while,do-while,for语句,学会了解决较难的问题。感觉解题能力得到了锻炼。
感想:难度突如其来,着实让人难以招架。想要学习更多能力,只能多动手,多应用,多解决实际问题。