基础语句——循环结构

  上次我们讲了分支结构及一些相关知识,老规矩先上题。

题目描述:
输入一个月份,判断这个月有几天。

输入描述:
一个月份,格式为“年份-月份”。

输出描述:
一个数,表示这个月有几天。

输入样例:
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

猜你喜欢

转载自www.cnblogs.com/RFdragon/p/10800127.html