zoukankan      html  css  js  c++  java
  • 一天一小步_我学C#入门精典_第三天

    中国真不小,从江南折腾到东北,收拾乱七八糟的东西,竟花费了近1周的时间...今天才算折腾完了...

    废话不多说了,继续入门......

     

    第四章 流程控制

    本章介绍控制程序流程的两种方法.程序流程就是C#代码的执行顺序.这两种方法是:

        * 分支-有条件的执行代码.条件取决于计算的结果,例如:如果(ture)就执行这行代码.
        * 循环重复执行相同的语句(重复执行一定的次数,或者在满足测试条件后停止执行).

    这两种方法都要用到布尔逻辑.

    本章的主要内容:

        * 布尔逻辑的含义及其用法
        * 如何控制代码的执行

    bool类型可以有两个值:ture或false.

    一些bool比较运算符也称为关系运算符.

     ==,!=,<,>,<=,>=

    还有一些其它bool运算符

    ! 逻辑非,&逻辑与,| 逻辑或,^ 逻辑异或

    条件bool运算符

    &&逻辑与, || 逻辑或

    &&,|| 与&,| 的区别:

    这两对运算符的运算结果完全相同,但得到结果的方式有一个重要的区别:前者性能比较好.

    如果&&运算符的第一个操作数是false就不需要考虑第二个操作数的值了,因为无论第二个操作数的值是什么其结果都是false.同样,如果第一个操作数是ture,||运算符就返回ture无需考虑第二个操作数的值了.

    但是&和|却不是这样,他们的操作数总是要计算的.

    因为操作数的计算是有条件的如果使用&&和||来代替&和|性能会有一定的提高.在大量使用这些运算符的应用程序中是比较明显的.作为一个规则尽可能使用&&和||运算符.

     

    位运算符&和|

    这两个运算符可以用于对数值执行操作.

    实际上,它们处理的是存储在变量中的一系列位,而不是变量的值.

     &运算符

    操作数1的位  操作数2的位  &的结果

    1        1      1

    1        0      0

    0        1      0

    0        0      0

    |运算符

    操作数1的位  操作数2的位  |的结果

    1        1      1

    1        0      1

    0        1      1

    0        0      0

    ^运算符

    操作数1的位  操作数2的位  ^的结果

    1        1      0

    1        0      1

    0        1      1

    0        0      0

    C#中还可以使用一元位运算符它将操作数中的位取反,其结果应是操作数中位为1的,在结果中就是0,反之亦然.

    操作数的位  ~的结果位

    1      0

    0      1

    除了这些运算符,还有另外两个运算符:位移运算符

    <<,>>

    示例:

    int var1, var2=10, var3=2;

    var1=var2<<var3;

    结果var1的值是40.

    具体过程如下:

    10的二进制 1010把该数向左移动两位得到101000,即十进制中的40.实际上,是执行了多个操作每向左移动两位该数都要乘以2,所以向在移动两位就是给原来的操作数乘以4,而每向右移动一位,就是给操作数除以2,并丢弃余数:

    int var1,var2=10;

    var1=var2>>1;

    在这个示例中var1的值是5.

    int var1,var2=10;

    var1=var2>>2;

    在这个示例中var1的值是2.

    布尔赋值运算符:

    &=,|=,^=

    位移赋值运算符:

    <<=,>>=

    goto语句

    C#允许给代码行上加上标签,这样就可以使用这些goto语句直接跳转到这些代码行上.

    主要的优点:这是控制什么时候执行哪些代码的一种非常简单的方式.

    主要的缺点:过多的使用这个技巧将很难读懂代码.

    goto语句的用法如下:

    goto <LabelName>;

    标签定义:

    <LabelName>:

    例如下面的代码:

    int myInteger=5;

    goto myLabel;

    myInteger+=10;

    myLabel:

    Console.WriteLine("myInteger={0}",myInteger);

  • 相关阅读:
    【接口平台】上报接口处理时间
    【性能测试】吞吐量上不去的问题
    vue层级选择器多选
    打家劫舍 II
    打家劫舍
    房屋染色 II
    距离顺序排列矩阵单元格
    根据身高重建队列
    将 x 减到 0 的最小操作数
    确定两个字符串是否接近
  • 原文地址:https://www.cnblogs.com/soso_ak/p/1432654.html
Copyright © 2011-2022 走看看