C#表達式和運算符詳細解析

類型轉換

Convert.To類型()

1、表達式

將變量和字面值(在使用運算符時,他們都稱作操作數)與運算符組合起來就得到瞭表達式,它是計算的基本構建
簡單的操作包括所有的基本書序操作,如加減乘除;還有專門用於處理佈爾值的邏輯運算以及賦值運算。
比如表達式:c=a+b

讓用戶輸入他的語文和數學成績,計算他的總成績

using System;
namespace 表達式
{
    class Program
    {
        static void Main(string[] args)
        {
            int a = 5;
            int b = 10;
            int c = a + b;
            Console.WriteLine(c);


            Console.WriteLine("請輸入你的語文成績");
            double chinese = Convert.ToDouble( Console.ReadLine());   //接收用戶輸入(字符串),並轉換成Dobule類型
            Console.WriteLine("請輸入你的數學成績");
            double math = Convert.ToDouble(Console.ReadLine());
            Console.WriteLine("您的總成績是{0},平均成績是{1}", chinese+math, (math+chinese)/2);  // 字符串連接方式可以用“+”
            Console.ReadKey();

        }
    }
}

1.2 運算符分類

按操作數的個數

  • 一元運算符:處理一個操作數(int a=10)
  • 二元運算符:處理兩個操作數 a>b
  • 三元運算符:處理三個操作數 (?:

按運算類型:

  • 數學運算符
  • 賦值運算符
  • 關系運算符
  • 佈爾原酸符
  • 位運算符 (按為取反)
  • 其他運算符(is as)

  • var1=var2++ :先用後加,var1等於var2,var2的值加1
  • var1=++var2:先加後用(va2=)

2、數學運算符

  • var2=10
  • var1=var2++ 先用後加(var1=var2=10, var2的值加一(var2=10+1))
  • var1=++var2 先加後用 (var2加一(var2=10+1),var1等於var2+1)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 數學運算符
{
    class Program
    {
        static void Main(string[] args)
        {
            int a = 5;
            int b = 3;
            int c = a / b;
            double d = a / b;
            
            double e = 5.0;
            double f = 3.0;
            double g = e / f;
            Console.WriteLine("c的值是{0},d的值是{1},g的值是{2}", c, d,g);
            Console.ReadKey();
        }
    }
}

結果:c的值是1,d的值是1,g的值是1.66666666666667

++/–

3、賦值運算符

4、關系運算符

5、佈爾運算符

註:&&/||與&/|區別:&&/||可用於對數值執行操作,實際上,他們處理的是在儲存在變量中的一系列位而不是變量的值

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 佈爾運算符
{
    class Program
    {
        static void Main(string[] args)
        {
            //&與運算符,||或運算符,!取反操作符,^異或運算符
            int a = 10;
            int b = 15;
            Console.WriteLine((10==a++)||(16==b--));
            Console.WriteLine("a的值是{0},b的值是{1}",a,b);  //輸出結果是a的值是11,b的值是15
            //或運算符||前一個操作為true時,不在執行後一個操作內容,所是上面的結果
            Console.ReadKey();            
            
        }
    }
}

6、位運算符

位(bit):在計算機中存儲所有數據都采用二進制,那麼二進制的為,便是我們所有的bit
1Byte=8bit 1字節=8位
1k=1024Byte
1M=1024k
1G=1024M
1T=1024G

在大俗代碼中都不適用這些運算符,但應知道這樣的運算符存在。它們主要用於高度優化的代碼,在這些代碼中,使用其他數學操作的開銷太高。因此它們通常用於驅動程序或系統代碼

~ 按位取反
&與運算
|或運算
^異或
<<左移
>>右移

6.1 &按位與運算

6.2 或|按位運算

6.3 異或^按位運算符

6.4按位取反~按位預算符

6.5 左移<<運算符

var3=var1<<var2 var1向左移動var2位,將所得的值付給var3

6.6右移

var3=var1>>var2 var1向右移動var2位,將所得的值付給var3

左移一位,相當於乘以2;
右移一位,當當與除以2;然後去除非整數部分

7、其他運算符

7.1 字符連接運算符+

將兩個字符串連接在一起組成一個新的字符串
備註:C#中“+”共三種用法

  • 數學算數運算符 var1=var2+var3
  • 乘以正1 var1 =+var2 (var1=var2*(+1))
  • 字符串連接 str1=“my name is” str2=“darly” str3=str1+" "+str2,則str3=“my name is darly” 7.2 is運算符

用於動態檢查對象的運行時類型是否與給定類型兼容

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 其他運算符
{
    class Program
    {
        static void Main(string[] args)
        {
            int a = 10;
            double b = 3.14;
            string c = "it is a string";
            bool mybool = false;
            mybool = a is int;
            Console.WriteLine("a is int\t"+mybool);   // \t是跳轉到下一個制表符
            mybool = b is double;
            Console.WriteLine("b is doubule\t" + mybool);
            mybool = c is string;
            Console.WriteLine("c is string\t" + mybool);
            Console.ReadKey();
        }
    }
}

7.3 三元運算符

表達式1?表達式2:表達式3 表達式1為true則結果為表達式2,否則結果為表達式3
輸出語句“I have 數量 pen” 當數量為1時為pen,數量大於1時為pens

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 其他運算符
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("請輸入您擁有的鋼筆數量");
            int qty = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("I have {0} pen{1}", qty,qty>1?"s":"");
            //Console.ReadKey();
            // 比較用戶輸入數據與5的關系
            Console.WriteLine("請您輸入要比較的數字");
            int number1 = Convert.ToInt32(Console.ReadLine());
            string result = number1 > 5 ? "大於等於" : "小於";
            Console.WriteLine("您輸入的數字{0}5",result);
            Console.ReadKey();
        }
    }
}

8、運算優先級

總結練習

編程實現1532855秒是幾天幾小時幾分鐘幾秒

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 總結練習
{
    class Program
    {
        static void Main(string[] args)
        {
            // 方法1,利用取整再取餘的方式逐級獲取響應的單位值
            Console.WriteLine("請輸入你要計算的秒數");
            int day = 24 * 60 * 60;
            int hour = 60 * 60;
            //int total = 1232855;
            int total = Convert.ToInt32(Console.ReadLine());
            int days = total / day;    //計算天數   利用總秒數對一天一共多少秒取整,得到天數
            int hours = (total % day) / hour; // 利用總秒數對一天一共多少秒取餘數,得到不夠一天的秒數,然後對一小時包含秒數整,得到小時數;
            int minutes = (total % day % hour)/60; //同樣思路,利用兩次取餘得到不足一小時的數量,再對60秒取整得到分鐘數
            int minutes2 = total % 3600 / 60;  //計算分鐘的方式2,總秒數對一小時取餘得到不足一小時的秒數然後取整60秒得到分鐘數
            int second = total % 60; //用總數對60秒取餘得到不足一分鐘的秒數,就是秒

            Console.WriteLine("{0}天{1}小時{2}分鐘{3}秒",days,hours,minutes,second);
            Console.WriteLine(minutes2+"分鐘");
            Console.ReadLine();

        }
    }
}

到此這篇關於C#表達式和運算符詳細解析的文章就介紹到這瞭,更多相關C#表達式和運算符內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: