关于循环结构的一些感悟

山东农业大学2018级数学系周小皓
经过一段时间的学习,我对于循环结构有了一些理解,下面我就写一下我对于循环结构的理解。
(一)知识体系:
 循环结构有三种:for、while、do while,在面对不同的问题时,选用不同的循环语句可以有效精简代码。
 for循环的格式为for(控制变量初始化表达式;条件表达式;增量表达式)
① 控制变量表达式只被执行一次;
② 当循环体句只有一条代码时可以省略大括号;
③ Break和continue的使用:
Break用在switch结构中;和循环结构中用于跳出循环,即结束循环,防止死循环。
Continue用于结束本次循环,直接进行下一次循环;如假设循环100次,在第十次循环时遇到了continue,那么continue余下部分不执行,直接执行第十一次循环,continue可加快循环进度。
 Do while循环(直到型循环: ……直到条件为假)格式:
Do{
语句块;
}while(表达式);
程序先执行语句块,然后再计算表达式的值,如果表达式的值非0(真),再去执行语句块,执行完语句块以后再计算表达式的值,如果如果表达式的值非0(真)……直到执行完了以后发现表达式的值为0,此时退出循环。
注意:
1)当首次执行表达式为真的时候,执行的结果和while一样。
2)当首次执行表达式为假的时候,while执行循环体0次,但是dowhile会执行一次。
 While循环(当型循环: 当 ……满足时候,然后……)格式:
While(表达式){
语句块;
}
先计算表达式的值,如果表达式的值非0(也就是真),就会执行语句块。
执行完语句块以后,继续计算表达式的值,如果表达式的值非0(也就是真),再继续执行语句块……当表达式的值为0(也就是假)的时候,循环结束。

  • 多组输入
    当需要输入多组数据时需要用多组输入,具体形式如下:
    1.C的多组输入:while(scanf(“%d”,&a)!=EOF)
    2.C++的多组输入:while(cin>>a)
    粘墙三角形
    #include
    using namespace std;
    #include
    int main()
    { int n;
    char c;
    while(cin>>n)
    {
    for(int i=1;i<=n;++i)
    {
    if(i!=n)
    cout<<“a”<<setw(n-i)<<" ";
    else cout<<“a”;
    for(int j=1;j<=i;++j)
    {
    c=j+96;
    cout<<c;
    }
    cout<<endl;
    }
    cout<<endl;
    }
    return 0;
    }
    代码片`
    ㈡循环结构的应用
  1. 许多问题都需要用到循环结构,如求100以内的素数及把一个整数倒置,用循环结构解题十分方便。

整数倒置

#include<iostream>
using namespace std;
int main()
{
   int a,b,c=0;
   cin>>a;
   while(a!=0)
   {
     b=a%10;
     c=c*10+b;
     a/=10;
   }
   cout<<c<<endl;
   return 0;
}

2.循环结构作为三大结构之一,许多程序都需要用到循环结构。
㈢我对循环结构的感悟
循环结构能够解决许多现实问题,通过数学建模把实际问题转化,然后通过编程使用循环结构等可以快速解决问题,节约了时间。

不多于5位正整数的处理

#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
	int a,c=0,sum=0,n,m;
	int q,p,x; int t,y;
	cin>>n;
	m=n;
	while(n!=0)
	{
		a=n%10;
		c=c*10+a;
		n/=10;
		sum++;
	}
		cout<<sum<<endl;
	if(m>=10000)
	{
		t=m/10000;
		y=m/1000-t*10;
		p=m/100-t*100-y*10;
		q=m/10-t*1000-y*100-p*10;
		x=m-t*10000-y*1000-p*100-q*10;
		cout<<t<<" "<<y<<" "<<p<<" "<<q<<" "<<x<<endl;
	}
    else if((m>=1000)&&(m<10000))
	{
		y=m/1000;
		p=m/100-y*10;
		q=m/10-y*100-p*10;
		x=m%10;
		cout<<y<<" "<<p<<" "<<q<<" "<<x<<endl;
	}
	else if((m>=100)&&(m<1000))
	{
		p=m/100;
		q=m/10-p*10;
		x=m-p*100-q*10;
		cout<<p<<" "<<q<<" "<<x<<endl;
	}
	else if((m>=10)&&(m<100))
	{
		q=m/10;
		x=m-q*10;
		cout<<q<<" "<<x<<endl;
	}
	else if((m>=1)&&(m<10))
	{
		x=m;
		cout<<x<<endl;
	}
	cout<<c<<endl;
	return 0;
}

#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
	int a,c=0,sum=0,n,m;
	int q,p,x; int t,y;
	cin>>n;
	m=n;
	while(n!=0)
	{
		a=n%10;
		c=c*10+a;
		n/=10;
		sum++;
	}
		cout<<sum<<endl;
	if(m>=10000)
	{
		t=m/10000;
		y=m/1000-t*10;
		p=m/100-t*100-y*10;
		q=m/10-t*1000-y*100-p*10;
		x=m-t*10000-y*1000-p*100-q*10;
		cout<<t<<" "<<y<<" "<<p<<" "<<q<<" "<<x<<endl;
	}
    else if((m>=1000)&&(m<10000))
	{
		y=m/1000;
		p=m/100-y*10;
		q=m/10-y*100-p*10;
		x=m%10;
		cout<<y<<" "<<p<<" "<<q<<" "<<x<<endl;
	}
	else if((m>=100)&&(m<1000))
	{
		p=m/100;
		q=m/10-p*10;
		x=m-p*100-q*10;
		cout<<p<<" "<<q<<" "<<x<<endl;
	}
	else if((m>=10)&&(m<100))
	{
		q=m/10;
		x=m-q*10;
		cout<<q<<" "<<x<<endl;
	}
	else if((m>=1)&&(m<10))
	{
		x=m;
		cout<<x<<endl;
	}
	cout<<c<<endl;
	return 0;
}



猜你喜欢

转载自blog.csdn.net/qq_43641693/article/details/84891801
今日推荐