1. 程式人生 > >基礎語句——循環結構

基礎語句——循環結構

pan 文章 ted 偉大的 str 分支結構 mes 一次 urn

  上次我們講了分支結構及一些相關知識,老規矩先上題。

題目描述:
輸入一個月份,判斷這個月有幾天。

輸入描述:
一個月份,格式為“年份-月份”。

輸出描述:
一個數,表示這個月有幾天。

輸入樣例:
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>
using
namespace 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

基礎語句——循環結構