1. 程式人生 > >關於迴圈結構的一些感悟

關於迴圈結構的一些感悟

山東農業大學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;
}