zoukankan      html  css  js  c++  java
  • C#语法基础之第三节

    1、类型转换:

      1-1:对于类型兼容的两种类型之间进行转换:

          大转小:强制类型转换 (int => int(double))

          小转大:自动类型转换  (doubl => int )

      1-2、对于类型不兼容的两种类型之间进行转换:

          前提:要使用Convert类进行转换的值和要转换得到的目标值之间是可以进行转换的

          string => dounle || string =>int  等等

    1 string str= "123";
    2 int rst_num =  Convert.ToInt32(str);
    3 Console.WriteLine(rst_num);
    4 Console.ReadKey(true);
    View Code
    ==> 结果:123

     2、++ 和 -- (一元运算符)

      ++:有前++ 和 后++ 之分

         当给变量单独使用++操作时,不管时前++ 还是后++:其目的都是给变量自身的值加上1

    1             int number = 10;
    2             //1、后++
    3             number++;
    4              Console.WriteLine(number);  //==> 11
    5             //2、前++
    6             ++number;
    7             Console.WriteLine(number);  //==> 11
    View Code

                   当该运算符参与表达式运算时,就需要考虑到前+还是后+之分。

    1            //前++ 是变量先加1 在将运算后的值参与运算
    2             int result = 10 + ++number;
    3             console.writeline(result);  ==> 21
    4             console.writeline(number);  ==> 11 
    5 
    6             //后++ 是先将变量的值参与运算 在将变量自身的值加1
    7             int result = 10 + number++;
    8             Console.WriteLine(result);  //==> 20
    9             Console.WriteLine(number);  //==> 11
    View Code

         --:和 ++ 的原理时一样的,不同就在于 -- 是将变量自身的值减去1

    3、++ 、-- 练习题

    (1)

    1             int a = 5;
    2             int b = a++ + ++a * 2 + --a + a++;
    3             Console.WriteLine(a); //=>7
    4             Console.WriteLine(b); //=>31    
    View Code

    分析:++ / -- 是一元运算符 ,+ - * / % 是二元运算符。一元运算符的优先级要比二元运算符的优先级高。在表达式中,如果同时存在一元运算符和二元运算符要先计算一元,在计算二元

    练习1详细解析:

    注意:为了方便描述,解析中仅将加号两边的表达式称为 运算数

    a的初始值是5,第一个运算数是a++,后加操作(先参与运算,自身在加1),那么参与表达运算的值就是5 ,此时变量a的值等于原来的值加上1 为 6;第二个运算数时 ++a * 2,先加(先自身加1,在参与运算),那么此时变量a的值就是 6+1 为7 ,参与表达式运算的值就是 7 * 2;第三个运算数是 --a ,先减(先自身减1,在参与运算),那么此时 a的值就是 7 -1 为6,那么参与运算的值为 6 ,最后一个运算数是 a++,后加,(先参与运算,在自身加1),那么参与运算的值就是 6 ,a的值就为 6+1 = 7

    (2)

    1 int umber = 3;
    2 int result = ++number + ++number - number-- + --number * 2;
    3 //  result      4     +     5    -    5     +      3 *2     <== 参与运算的值               
    4 //  number      4           5         4             3       <== number存储的值
    5 Console.WriteLine(number);  // ==>3
    6 Console.WriteLine(result);  // ==>10
    7 Console.ReadKey();
    View Code

    4、++ 和 a= a+1 的效率比较

    a=a+1. 先取a的值,放到加法器中,把1放在加法器中,然后计算出结果,放在一个临时变量中,再把结果赋值给a。

    a++, 取a的值和1放到加法器中,计算结果后直接赋值给a。

    也就是后者少了一步。所以效率略高。

    不过现在的编译器都做过优化。

    a++ a+=1 a=a+1

    这三个表达式效率是一样的

      

  • 相关阅读:
    python爬虫开发与项目实践-学习笔记(一)
    python之TypeError
    学习笔记-python
    python学习之Unable to locate element
    Chrome浏览器之 webdriver(Chrome version must be >= 63.0.3239.0)
    POJ 1830 开关问题 高斯消元
    HDU 4135 Co-prime 容斥原理
    HDU 1796 How many integers can you find 容斥原理
    卡特兰数,组合数,斯特林数,逆元模板
    HDU 6134 Killer Names 数学 斯特林数
  • 原文地址:https://www.cnblogs.com/Yisijun/p/7450926.html
Copyright © 2011-2022 走看看