zoukankan      html  css  js  c++  java
  • c++ 运算符 循环

    运算符

    • 算术运算符
    • 关系运算符
    • 逻辑运算符
    • 位运算符
    • 赋值运算符
    • 杂项运算符

    一、算术运算符

    二、关系运算符

    三、逻辑运算符

    四、位运算符

    位运算符作用于位,并逐位执行操作

    假设如果 A = 60,且 B = 13,现在以二进制格式表示:

    A = 0011 1100

    B = 0000 1101

    -----------------

    A&B = 0000 1100

    A|B = 0011 1101

    A^B = 0011 0001

    ~A  = 1100 0011

     

    五、赋值运算符

    六、杂项运算符

    sizeof

    返回变量或数据类型的字节大小 ———— Size of int : 4

    Condition ? X : Y

    如果 Condition 为真 ? 则值为 X : 否则值为 Y

     ,  逗号运算符

     会顺序执行一系列运算。整个逗号表达式的值是以逗号分隔的列表中的最后一个表达式的值

     .(点)和 ->(箭头)

    用于引用类、结构和共用体的成员

    Cast 强制转换

    把一种数据类型转换为另一种数据类型。例如,int(2.2000) 将返回 2

    &指针运算符

    返回变量的地址

    *指针运算符

    指向一个变量

    七、运算符优先级

     补充:

    1.除法/和求模%若两个操作数是正数,则结果都是正数

    两个操作数是负数,则除法的结果是正数求模的结果是负数

    只有一个操作数是负数求模的结果取决于机器除法可以确定结果是负数

    2. “--> x”    在 x 的进行自减运算前,会先使用比较符号 > 与右边表达式 0 进行比较,然后返回结果再进行自减运算

    循环

    // while 循环执行
       
        while( a < 20 )
       {
           cout << "a 的值:" << a << endl;
           a++;
       }
        
    
    // for 循环执行
       for( int a = 10; a < 20; a = a + 1 )
       {
           cout << "a 的值:" << a << endl;
       }
    
    
    // 等效于while循环
       for ( ;i<=100; ) 
      {
          sum+=i;
           i++; 
        }
    
    
    
     // do 循环执行 ————  不断循环,直到条件为 假
       do
       {
           cout << "a 的值:" << a << endl;
           a = a + 1;
       }while( a < 20 );

    一、基于范围的for循环(C++11)

    int my_array[5] = {1, 2, 3, 4, 5};
    // 每个数组元素乘于 2
    for (int &x : my_array)
    {
        x *= 2;
        cout << x << endl;  
    }
    // auto 类型也是 C++11 新标准中的,用来自动获取变量的类型
    for (auto &x : my_array) {
        x *= 2;
        cout << x << endl;  
    }

    ":"之后的第二区块,代表将被迭代的范围

    string str("some string");        //也可以遍历字符串
    // range for 语句  
        for(auto &c : str)  
        {  
            c = toupper(c);  
        } 

     二、无限循环

    由于构成 for 循环的三个表达式中任何一个都不是必需的,您可以将某些条件表达式留空来构成一个无限循环

     for( ; ; )
       {
          printf("This loop will run forever.
    ");
       }

    三、循环控制语句

     break;

    continue;

    goto语句

    goto 语句允许把控制无条件转移到同一函数内的被标记的语句。

    不建议使用

    但对于跳出深层嵌套 有很好的作用

    for(...) {
       for(...) {
          while(...) {
             if(...) goto stop;
             .
             .
             .
          }
       }
    }
    stop:
    cout << "Error in program.
    ";

    判断

    if( xxx )
       {
          ...
       }else if ( xxx ){
        ...    
       }else{
       ...
    }

    switch

    char grade = 'D';
     
       switch(grade)
       {
       case 'A' :
          cout << "很棒!" << endl; 
          break;
       case 'B' :
       case 'C' :
          cout << "做得好" << endl;
          break;
       case 'D' :
          cout << "您通过了" << endl;
          break;
       case 'F' :
          cout << "最好再试一下" << endl;
          break;
       default :
          cout << "无效的成绩" << endl;
       }
    • switch 语句中的  表达式 必须是一个整型或枚举类型,或者是一个 class 类型,其中 class 有一个单一的转换函数将其转换为整型或枚举类型
    • 在一个 switch 中可以有任意数量的 case 语句。每个 case 后跟一个要比较的值和一个冒号。
    • case 的 constant-expression 必须与 switch 中的变量具有相同的数据类型,且必须是一个常量或字面量。
    • 当被测试的变量等于 case 中的常量时,case 后跟的语句将被执行,直到遇到 break 语句为止。
    • 当遇到 break 语句时,switch 终止,控制流将跳转到 switch 语句后的下一行。
    • 不是每一个 case 都需要包含 break。如果 case 语句不包含 break,控制流将会 继续 后续的 case,直到遇到 break 为止。
    • 一个 switch 语句可以有一个可选的 default case,出现在 switch 的结尾。default case 可用于在上面所有 case 都不为真时执行一个任务。default case 中的 break 语句不是必需的。
  • 相关阅读:
    【转载】震惊了!原来这才是kafka!
    Django model层之执行原始SQL查询
    Django model 层之聚合查询总结
    Django 不通过外键实现多表关联查询
    Django model 层之Making Query总结
    Python 基于Python生成短8位唯一id解决方案
    Python shortuuid生成库学习小结
    Django model 层之Models与Mysql数据库小结
    Django Template层之自定义tag
    Django 通过自定义context_processors实现自定义tag
  • 原文地址:https://www.cnblogs.com/expedition/p/11317140.html
Copyright © 2011-2022 走看看