C++程式設計教學(四)-運算式與運算子

在上次的迴圈中多次用到運算式與運算子,這次來看還有哪些常用的運算子吧!

> , < , <= , >= , == , !=
前面兩個大家應該很熟悉,就是大於小於,第三第四個可能沒看過,但很好理解,就是加了一個等於而已,然而最後兩個大家就不一定知道了,他們分別是數學的等於和不等於,因為=有指定的意思所以用 == 來表示一般的等於啦!

+ , – , * , / , % , ( )
加減就不用說了, */ 大家估計也知道是乘除吧 ( 應該吧 ) !那%呢?百分比?不,它是 mod( ),又稱取餘數。
ex :
20%3=2 // 20/3 … 2
( ) 與數學上的括號相似,比較特別的是不會有這種用法 { [ ( 1+2 ) – ( 2+4 ) ] * ( 7+2*4 ) } ,因為[ ] 適用在陣列 ( 以後會講 ) 的存取,{ } 則是用在標示述句的範圍。
ex :

    while(a>=4){
        a=b+1;
        b--;
    }

我習慣會在括號之間用空格區分
ex :

    ( (20* (5+3) )/2-1 )+10
另外還有一些特別的運算子提供名稱及範例以供參考
, 分隔符號                           | = 指定 ( 用於變數 )
ex :                                | ex :
    int a=1,b=0,c=5; //宣告變數      |     int a=b+2;
----------------------------------------------------------------------------
. 存取 ( 以後 struct 和 class 用的)   | >>,<< 輸入輸出
ex :                                 | ex : 
    struct posion{                   |    cout<<a;
        int x,y;                     |    cin>>a;
    };                               |    cout<<a<<"+"<<c<<"="<<c+a;
                                     |    cin>>a>>b;
    int main(){                                  
        posion pos; //宣告物件          
        pos.x=0;    //( 結構 )             
        pos.y=2;                                 
        return 0;
    }
----------------------------------------------------------------------------
+= , -= , *= , /= , %= 運算加指定  | << , >> 位元移動 ( 用於變數 )
ex :                              | ex :
    a+=b    //等同於 a=a+b         |    int a=1;   // 000000000001
    a*=a-b  //等同於 a=a*(a-b)     |    a<<10;     // 010000000000
                                  |    cout<<a;   //會顯示 1073741824
----------------------------------------------------------------------------
&& , || and 和 or                 | & , | 位元 and or ( 不常用 )
ex :                              |ex :
    int a=0,b=10;                 |    int a=13,b=10;
    a>=0 && b<=1000 //true        |    a&1 ;// true  
                                  |    b&1 ;// false 
----------------------------------------------------------------------------

以上就是常見的運算子,當然還有一些其他的,例如 ~ 位元補數運算,不過超級不常用所以就不介紹了。以下說明用途,像是 if for while都會用到。

//ex
#include<iostream>
#include<cmath> // 含有sqrt() 平方根
using namespace std;

struct posion{
    double x,y;
}

int main(){
    double d;
    posion a,b;
    cin>>a.x>>a.y;
    cin>>b.x>>b.y;
    if(a.x>b.x){ // if為如果
        d+=(a.x-b.x)*(a.x-b.x);
    }else{ // else 否則
        d+=b.x-a.x*(b.x-a.x);
    }
    if(a.y>b.y){
        d+=(a.y-b.y)*(a.y-b.y);
    }else{
        d+=(a.y-b.y)*(a.y-b.y);
    }
    d=sqrt(d);
    cout<<d;
}
//這就是一個計算點距的計算機了

下回會介紹函式 ( function ) 與遞迴~

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *