zoukankan      html  css  js  c++  java
  • c++基础(三)

    选择结构

    if语句:

    if语句的语法形式

    if (表达式语句

    例:if (x > y) cout << x;

    if (表达式语句1 else 语句2

    例:if (x > y) cout << x;

    else cout << y;

    if (表达式1) 语句1
    else if (
    表达式2) 语句2
    else if (
    表达式3) 语句3
               …
    else 
    语句 n

    2-2输入一个年份,判断是否闰年

    #include <iostream>
    using namespace std;
    int main() { int year; bool isLeapYear; cout << "Enter the year: "; cin >> year; isLeapYear = ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)); if (isLeapYear) cout << year << " is a leap year" << endl; else cout << year << " is not a leap year" << endl; return 0; }

    嵌套的if结构

    语法形式:

    if(   )

    if(   ) 语句 1

    else 语句 2

    else

    if(   ) 语句 3

    else  语句 4

    注意:语句 1、2、3、4 可以是复合语句;每层的 if 与 else 配对,或用 { } 来确定层次关系。

    2-3:输入两个整数,比较两个数的大小

    #include<iostream>
    using namespace std;
    
    int main() {
              int x, y;
              cout << "Enter x and y:";
              cin >> x >> y;
              if (x != y)
                {
                       if (x > y)
                                 cout << "x > y" << endl;
                       else
                }
                                 cout << "x < y" << endl;
              else{
                       cout << "x = y" << endl;
                    }
              return 0;
    }                    

    switch语句

    语法形式

    switch  (表达式)

         {  case    常量表达式 1:语句1

            case   常量表达式 2:语句2

            case   常量表达式 n:语句n

            default :             语句n+1

         }

    执行顺序: 以case中的常量表达式值为入口标号,由此开始顺序执行。因此,每个case分支最后应该加break语句。

    注意: case分支可包含多个语句,且不用{ }。

    表达式、判断值都是int型或char型。

    如果若干分支执行内容相同可共用一组语句。

    2-4:输入一个06的整数,转换成星期输出

    #include<iostream>
    #include<bitset>
    using namespace std;
    int main()
    {
        int day;
        cin >> day;
        switch (day)
        {
        case 0: cout << "Sunday" << endl; break;
        case 1: cout << "Monday" << endl; break;
        case 2: cout << "Tuesday" << endl; break;
        case 3: cout << "Wednesday" << endl; break;
        case 4: cout << "Thursday" << endl; break;
        case 5: cout << "Friday" << endl; break;
        case 6: cout << "Saturday" << endl; break;
        default:
            cout << "Day out of range Sunday .. Saturday" << endl;   break;
        }
        return 0;
    }

    2-4:编写一个共用执行语句的分支

    #include<iostream>
    using namespace std;
    
    int main()
    
    {
           int i;
           cin >> i;
           switch (i)
           {
           case 0:
           case 1:
           case 2:
                  cout << "Hello world!" << endl; break;
           default:
                  cout << "Hello c++!!!" << endl; break;
           }
           //当i=0,1,2时,都有相同的输出。
           return 0;
    }

    while语句

    语法形式:while  (表达式)  语句

              

    执行顺序:先判断表达式的值,若为 true 时,执行语句。

    例2-5 求自然数1~10之和

    #include <iostream>
    using namespace std;
    
    int main() {
      int i = 1, sum = 0;
      while (i <= 10) {
          sum += i;  //相当于sum = sum + i;
          i++;
      }
      cout << "sum = " << sum << endl;
              return 0;
    }

    do-while语句

    do-while 语句的语法形式

    do   语句     // 可以是复合语句,其中必须含有改变条件表达式值的语句。

    while (表达式)

    执行顺序:先执行循环体语句,后判断条件。表达式为 true 时,继续执行循环体。

    2-6:输入一个数,将各位数字翻转后输出

    #include <iostream>
    using namespace std;
    
    int main() 
    {
        int n, right_digit, newnum = 0;
        cout << "Enter the number: ";
        cin >> n;
        cout << "The number in reverse order is  ";
        do {
            right_digit = n % 10;
            cout << right_digit;
            n /= 10;  /*相当于n=n/10*/
        } while (n != 0);
        cout << endl;
        return 0;
    }

    2-7do-while语句编程,求自然数1~10之和

    #include <iostream>
    using namespace std;
    
    int main()
    {
        int i = 1, sum = 0;
        do 
        {
            sum += i;
            i++;
        }
        while (i <= 10);
        cout << "sum = " << sum << endl;
        return 0;
    }

    对比下面的程序

    程序1

    #include <iostream>
    using namespace std;
    int main()
    {
        int i, sum = 0;
        cin >> i;
        while (i <= 10)
        {
            sum += i;
            i++;
        }
        cout << "sum= " << sum
            << endl;
        return 0;
    }

    程序2:

    #include<iostream>
    using namespace std;
    
    int main()
    {
        int i, sum = 0;
        cin >> i;
        do 
        {
            sum += i;
            i++;
        } 
        while (i <= 10);
        {    
            cout << "sum=" << sum << endl; 
        }
        return 0;
    }

    for语句

    for语句语法形式:

     

    for语句的另一种形式:范围for语句:

        for  (声明:表达式)

            语句

    自定义类型

    类型别名:为已有类型另外命名

    typedef  已有类型名  新类型名表

    例:

    typedef double Area, Volume;

    typedef int Natural;

    Natural i1,i2;

    Area a;

    Volume v;

    using  新类型名 = 已有类型名;

    例:using Area = double;using Volume = double;

    枚举类型

    定义方式:将全部可取值一一列举出来。

    语法形式:enum  枚举类型名  {变量值列表};

    例:enum Weekday {SUN, MON, TUE, WED, THU, FRI, SAT};

    默认情况下SUN=0,MON=1,TUE=2,......,SAT=6

    C++包含两种枚举类型:

    不限定作用域枚举类型:enum  枚举类型名  {变量值列表};

    限定作用域的enum类将在第4章介绍。

    不限定作用域枚举类型说明:

    枚举元素是常量,不能对它们赋值

    例如有如下定义:enum Weekday {SUN, MON, TUE, WED, THU, FRI, SAT};不能写赋值表达式:SUN = 0,枚举元素具有默认值,它们依次为: 0,1,2,......。

    也可以在声明时另行指定枚举元素的值,如:enum Weekday{SUN=7,MON=1,TUE,WED, THU,FRI,SAT};枚举值可以进行关系运算。

    整数值不能直接赋给枚举变量,如需要将整数赋值给枚举变量,应进行强制类型转换。

    枚举值可以赋给整型变量。

    2-11

    设某次体育比赛的结果有四种可能:胜(WIN)、负(LOSE)、平局(TIE)、比赛取消(CANCEL),编写程序顺序输出这四种情况。

    分析:

    比赛结果只有四种可能,可以声明一个枚举类型。

     1 #include <iostream>
     2 using namespace std;
     3 
     4 enum GameResult { WIN, LOSE, TIE, CANCEL };
     5 int main() {
     6     GameResult result;
     7     enum GameResult omit = CANCEL;
     8     for (int count = WIN; count <= CANCEL; count++)
     9     {
    10         result = GameResult(count);
    11         if (result == omit)
    12         { 
    13             cout << "The game was cancelled" << endl;
    14         }
    15         else
    16         {
    17             cout << "The game was played ";
    18             if (result == WIN)
    19             {
    20                 cout << "and we won!";
    21             }
    22             if (result == LOSE)   
    23             {
    24                 cout << "and we lost.";
    25             }
    26             cout << endl;
    27         }
    28     }
    29     return 0;
    30 }

    auto类型与decltype类型

    auto:编译器通过初始值自动推断变量的类型

    例如:auto val = val1 + val2;

    如果val1+val2是int类型,则val是int类型;

    如果val1+val2是double类型,则val是double类型。

    decltype:定义一个变量与某一表达式的类型相同,但并不用该表达式初始化变量

    例如:decltype(i) j = 2;

  • 相关阅读:
    Perl 基础笔记: 使用 cpanm 安装 Perl 模块
    修改CPAN安装源
    JQUERY实现点击INPUT使光标移动到最后或指定位置
    新手入门Underscore.js 中文(template)
    深入浅出C/C++中的正则表达式库
    [libxml2]_[XML处理]_[使用libxml2的xpath特性修改xml文件内容]
    Mysql事务的隔离级别
    HBase基础知识摘要
    java如何实现一个Future
    遇到过的问题整理-大量页面监控问题
  • 原文地址:https://www.cnblogs.com/puheng/p/9250356.html
Copyright © 2011-2022 走看看