Operator運算子
(一)算術運算子運算子是 : + , - ,*,/,%
(二)指定運算子,遞增,遞減
1) = :指定 ,assign,不是相等
變數 = 值,變數,計算式 (先執行產生值)
2) += , -= , *=, /=,%= ,++ , --
=> 變數值為堆疊運算
(三)關係運算子 => 節點 1.true 2.false
=> >,< , >= , <= , == ,!=
(四)條件運算子 => 多個條件
=> && 是 And
=> || 是 or
=> ^ 是 xor
=> | 是 not (反轉) 1.true 會變成false , 2.false 會變成true
(五)位元運算子=> 2進位
=> &,| ,^,~(補數) 1. 0 1 2 3 4 5 6 2. -1 -2 -3 -4 -5 -6 -7
(六)位移運算子 => 2進位
=> >>(右移) <<(左移)
class ex2
{
public static void main(String args[])
{
int x=10;
int y=3;
System.out.println("x+y="+(x+y));
System.out.println("x-y="+(x-y));
System.out.println("x*y="+(x*y));
System.out.println("x/y="+((float)x/y)); //還沒有運算先轉型
System.out.println("x%y="+(x%y));
}
}
執行結果:
2.例子
class ex2
{
public static void main(String args[])
{
int x=10;
System.out.println("x="+x);
x=x+20; //會在記憶體下面 不會被清除
System.out.println("x="+x);
int y=50;
int z=20;
//int x=y*20-10; 需要為對等式 不然會抱錯
//x+y=2*z+50;
System.out.println("x="+x);
}
}
執行結果:
例子3:
class ex2
{
public static void main(String args[])
{
int chinese=10;
//chinese=chinese+20;
chinese+=20;
System.out.println("chiense="+chinese);
int chinese2=10;
//chinese2=chinese2-20;
chinese2-=20;
System.out.println("chiense2="+chinese2);
int chinese3=10;
//chinese3=chinese3*20;
chinese3*=20;
System.out.println("chiense3="+chinese3);
int chinese4=10;
//chinese4=chinese4/2;
chinese4/=2;
System.out.println("chiense4="+chinese4);
int chinese5=10;
//chinese5=chinese5%3;
chinese5%=3;
System.out.println("chiense5="+chinese5);
}
}
執行結果:
例子3:
class ex3
{
public static void main(String args[])
{
int x=10;
int y;
//x++;
//++x;
//y=x++;//y=x;x=x+1;
y=++x;//x=x+1;y=x; 會先進行前面相加 然後再把值給給 y
System.out.println("x="+x);
System.out.println("y="+y);
/*
int x=10;
//x=x+1;
//x+=1;
//x++;
++x;
System.out.println("x="+x);
*/
}
}
執行結果:舉例: 4
class ex4
{
public static void main(String args[])
{
int chi=65;
System.out.println("chi>60-->"+(chi>60));
System.out.println("chi<60-->"+(chi<60));
System.out.println("chi>=60-->"+(chi>=60));
System.out.println("chi<=60-->"+(chi<=60));
System.out.println("chi==60-->"+(chi==60));
System.out.println("chi!=60-->"+(chi!=60));
}
}
執行結果:
舉例: 5
class ex2
{
public static void main(String args[])
{
int chi=65;
int eng=55;
System.out.println("chi>=60 && eng>=70--->"+(chi>=60 && eng>=70));
System.out.println("chi>=60 || eng>=70--->"+(chi>=60 || eng>=70));
/*
int chi=65;
System.out.println("chi>60-->"+(chi>60));
System.out.println("chi<60-->"+(chi<60));
System.out.println("chi>=60-->"+(chi>=60));
System.out.println("chi<=60-->"+(chi<=60));
System.out.println("chi==60-->"+(chi==60));
System.out.println("chi!=60-->"+(chi!=60));
*/
}
}
執行結果:
範例:6
class ex2
{
public static void main(String args[])
{
int chi=65;
int eng=75;
System.out.println("chi>=60 && eng>=70--->"+!(chi>=60 && eng>=70));
System.out.println("chi>=60 || eng>=70--->"+(chi>=60 || eng>=70));
System.out.println("chi>=60 ^ eng>=70--->"+(!(chi>=60) ^ eng>=70));
// (!(chi>=60) 上面加上" !" 可以反轉 結果
/*
int chi=65;
System.out.println("chi>60-->"+(chi>60));
System.out.println("chi<60-->"+(chi<60));
System.out.println("chi>=60-->"+(chi>=60));
System.out.println("chi<=60-->"+(chi<=60));
System.out.println("chi==60-->"+(chi==60));
System.out.println("chi!=60-->"+(chi!=60));
*/
}
}
執行結果:
範例:7
class ex2
{
public static void main(String args[])
{
int chi=65;
int eng=75;
System.out.println("chi>=60 && eng>=70--->"+!(chi>=60 && eng>=70));
System.out.println("chi>=60 || eng>=70--->"+(chi>=60 || eng>=70));
System.out.println("chi>=60 ^ eng>=70--->"+(!(chi>=60) ^ eng>=70));
System.out.println("======================================");
System.out.println("chi>=60 & eng>=70--->"+!(chi>=60 & eng>=70));
System.out.println("chi>=60 | eng>=70--->"+(chi>=60 | eng>=70));
System.out.println("======================================");
System.out.println(5&2); //二進為算法 只要有0都是0
System.out.println(5|2); //二進為算法 只要有1都是1
System.out.println(5^2); //二進為算法 只要有不是1 1都是0
System.out.println("======================================");
System.out.println(~2); //補數
System.out.println(~(-2)); //補數
System.out.println("======================================");
System.out.println(5>2); //單一個 > 是比大小 答案會是 對或錯
System.out.println(5>>2); //右移 前面是 要位移的數字後面是要移動幾個位數
System.out.println(5<<2); //右移 前面是 要位移的數字後面是要移動幾個位數
/*
int chi=65;
System.out.println("chi>60-->"+(chi>60));
System.out.println("chi<60-->"+(chi<60));
System.out.println("chi>=60-->"+(chi>=60));
System.out.println("chi<=60-->"+(chi<=60));
System.out.println("chi==60-->"+(chi==60));
System.out.println("chi!=60-->"+(chi!=60));
*/
}
}
執行結果:
算法:
二進位算法
5 >> 00000101
2>> 00000010 (&)
_________________ 答案 0
00000000
5 >> 00000101
2>> 00000010 (|)
_________________ 答案 7
00000111
5 >> 00000101
2>> 00000101 (^)
_________________ 答案 2
00000010
左移右移
5 >> 00000101
5>>2 5 右移 2位 答案 1 : 00000001 ※移除要補0
5 >> 00000101
5<<2 5 左移 2位 答案 20 : >> 00010100 ※移除要補0
沒有留言:
張貼留言