基礎語句——循環結構
上次我們講了分支結構及一些相關知識,老規矩先上題。
題目描述: 輸入一個月份,判斷這個月有幾天。 輸入描述: 一個月份,格式為“年份-月份”。 輸出描述: 一個數,表示這個月有幾天。 輸入樣例: 2016-2 輸出樣例: 29 其他說明: 年份為一個四位正整數,月份為一個不超過12的正整數。
如果你不知道橫杠怎麽輸入,參考以下語句。假設年份存在變量year中,月份存在變量month中:
int year,month; char a; cin>>year>>a>>month;
那麽,今天我們來看一看c++中最偉大的語句結構——循環結構。循環結構的作用是讓一段代碼反復執行。循環結構主要有3種,分別是:for循環,while循環和do-while循環。其中,do-while循環由於過於垃圾,因此我們很少使用,這裏就不講了。
首先看一下for循環。它的格式是:for(語句1;語句2;語句3){段落}。看上去可能有點復雜,我們來舉一個實例。看看這個語句:
for(int i=1;i<=10;i++)
{
cout<<i;
}
這裏再提一句,你可以把a=a+b簡寫成a+=b,你也可以把a=a+1簡寫成a++,因此這裏i++的意思就是讓i自加1。
for循環執行的過程是:先執行語句1,通常我們用語句1來定義一個變量,我們叫它循環變量;隨後執行語句2,語句2是一個判斷句,如果結果為true,就執行花括號中的語句,如果為false,就跳出循環;每當進行過一次循環,就會執行一次語句3。因此,上面這段代碼的運行結果應該是:
12345678910
for循環是我們最常用的循環,因為它的可控性非常強。另外,while循環也是非常常用的一種循環,它的格式是:while(語句){段落}。括號中的語句和for循環中的語句2的作用是完全相同的。我們來看一個小程序:
#include<iostream> usingnamespace std; int main() { for(int i=1;i<=10;i++) { for(int j=1;j<=i;j++) cout<<"*"; cout<<endl; } return 0; }
它的運行結果是:
* ** *** **** ***** ****** ******* ******** ********* **********
這裏再來說兩個需要註意的問題,for語句和while語句後面都是不需要加分號的。他們和if語句一樣,如果段落中只有1句話,就可以省略花括號,但如果有很多語句,就要加上花括號,不然就會被認為段落中只有一句話。另外,在for循環語句1中定義的變量成為循環變量,在循環外不能使用,否則會報錯。以下是上面這個輸出小星星的程序用while循環來完成的代碼:
#include<iostream> using namespace std; int main() { int i=1; while(i<=10) { int j=1; while(j<=i) { cout<<"*"; j++; } i++; } return 0; }
不過很少有人會這麽寫,因為太麻煩了。但你們知不知道作者為了讓你們深入理解while循環的用法,辛辛苦苦敲代碼,花了多長時間!讀這篇文章不花你一分錢,還能學到這麽多有用的知識,怎麽想都是血賺不虧,不贊一波我都替你對不起作者。廢話不多說了,這就是循環結構的用法,你學會了嗎?
//答案代碼 #include<iostream> using namespace std; int main() { int y,m; char a; cin>>y>>a>>m; if(m==1||m==3||m==5||m==7||m==8||m==10||m==12) cout<<"31"; else if(m!=2) cout<<"30"; else if((!y%100&&y%4==0)||y%400==0) cout<<"29"; else cout<<"28"; return 0; }
Created by RFdragon
基礎語句——循環結構