java語言用文字描述如下運算子的作用
一、當前實操名稱
文字描述如下運算子的作用以及附加上測試程式碼。
1.1、算術運算子(+-*/%,自增自減)
1.2、賦值擴充套件運算子
1.3、關係運算符(<,>,<=,>=,!=,==)
1.4、邏輯運算子(&&,||,!)
1.5、位運算子(&,|,^)
1.6、條件運算子
1.7、字串連線符
二、心得與主要bug反饋
2.1、對變數有了詳細的瞭解; 2.2、深刻的認識了幾種運算情況; 2.3、對運算子有了熟練的應用; 2.4、主要bug及異常在程式碼中具體介紹;
三、專案
3.1、作者:胡超凡; 3.2、用時:2h; 3.3、專案環境: a、JDK版本:1.8.0_181; b、IDE版本:eclipse Oxygen.3a Release (4.7.3a) c、系統:win10 d、專案所用知識點:主要是一個類的main方法中進行相關測試; 3.4、專案 3.4.1、文字描述運算子的作用 3.4.1.1、算術運算子(+-*/%,自增自減) +-*/%:運算元相加,相減,相乘,相除,相除取餘數; ++、--:運算元,自己加1,自己減1; 3.4.1.2、賦值擴充套件運算子
3.4.1.3、關係運算符(<,>,<=,>=,!=,==)
關係運算符用來進行比較運算,結果是布林值:true/false;
3.4.1.4、邏輯運算子(&&,||,!)
3.4.1.5、位運算子(&,|,^) 3.4.1.6、條件運算子
語法格式:x?y:z;
其中 x 為 boolean 型別表示式,先計算 x 的值,若為true,則整個運算的結果為表示式 y 的值,否則整個運算結果為表示式 z 的值。
3.4.1.7、字串連線符
“+”運算子兩側的運算元中只要有一個是字串(String)型別,系統會自動將另一個運算元轉換為字串然後再進行連線。
3.4.2、專案程式碼
3.4.2.1-3.4.2.2、算術運算子(+-*/%,自增自減) 賦值擴充套件運算子
/**
- 測試算術運算子、賦值和賦值擴充套件運算子
- @author huchaofan
*/ public class TestOperator01 { public static void main(String[] args) { byte a=1;//特例,int直接付給byte; int b=2; long b2=3; //byte c=a+b;//Type mismatch: cannot convert from int to byte //int c2=b2+b;//Type mismatch: cannot convert from long to int
//float f1=3.14;//預設double,Type mismatch: cannot convert from double to float
float f1=3.14F;
double d=b+b2;//測試加法;
float d1=b-b2;//測試減法;
long d2=b*b2;//測試乘法;
int d3=a/b;//測試除法;1/2,為0.5,int型別去掉小數,變為0;
System.out.println("##########算數運算子測試###########");
System.out.println("加法測試:b+b2="+d);
System.out.println("減法測試:b-b2="+d1);
System.out.println("乘法測試:b*b2="+d2);
System.out.println("除法測試:a/b="+d3);
//float e=f1+6.2;//預設double,Type mismatch: cannot convert from double to float
double g=f1+6.2;//如果兩個運算元有一個為double,則結果為double
float e=f1+6.2F;//只有兩個運算元都是float,則結果才為float
System.out.println("浮點運算測試:f1+6.2F="+e);
System.out.println("###############取模測試####################");
System.out.println(-9%5);//-4,取模符號與左邊運算元一樣;
System.out.println(9%-5);//4
//測試自增和自減
System.out.println("############自增和自減測試###########");
int m=3;
int n=m+++3;//先算n=3+3=6;再m++,即m=4
System.out.println("m="+m+"\tn="+n);
m=3;
n=++m+3;//先算++m,m=4,再n=4+3=7
System.out.println("m="+m+"\tn="+n);
//測試賦值和賦值擴充套件運算子
System.out.println("##########賦值和賦值擴充套件運算子測試###########");
int x=3;//賦值
int y=4;
x+=y;//相當於x=x+y
System.out.println("+=測試:"+"x="+x+"\ty="+y);
x=3;
x-=y;//相當於x=x-y
System.out.println("-=測試:"+"x="+x+"\ty="+y);
x=3;
x*=y+3;//相當於x=x*(y+3)
System.out.println("*=測試:"+"x="+x+"\ty="+y);
x=3;
x/=y-3;//相當於x=x/(y-3)
System.out.println("/=測試:"+"x="+x+"\ty="+y);
x=3;
x%=y-2;//相當於x=x%(y-2)
System.out.println("%=測試:"+"x="+x+"\ty="+y);
}
} 3.4.2.3、關係運算符(<,>,<=,>=,!=,==)
/**
- 測試關係運算符
- @author huchaofan
*/ public class TestOperator02 { public static void main(String[] args) { int a=3; System.out.println("############測試關係運算符############"); System.out.println(a3);//測試 System.out.println(a!=3);//測試!= System.out.println(a<5);//測試< System.out.println(a>5);//測試>
System.out.println("#####################");
char b='a';
char b2='c';
System.out.println(b);//a字元
System.out.println((int)b);//97,強制轉為int型別
System.out.println(0+b);//2.沒有long時,結果為int。即使運算元全為short,byte,char,int,結果也是int
System.out.println(0+b2);//99
System.out.println(b<b2);//true
System.out.println(b+b2);//char+char型別,自動轉為int;
}
} 3.4.2.4、邏輯運算子(&&,||,!)
/**
- 測試邏輯運算子
- @author huchaofan
*/ public class TestOperator03 { public static void main(String[] args) { boolean b1=true; boolean b2=false; System.out.println(b1&b2);//測試與 System.out.println(b1|b2);//測試或 System.out.println(b1^b2);//測試異或 System.out.println(!b2);//測試非
//短路
System.out.println("###########測試短路###########");
//int c=3/0;
/*異常
* Exception in thread "main" java.lang.ArithmeticException: / by zero
* at TestOperator03.main(TestOperator03.java:18)
* 執行緒“main”java.lang.ArithmeticException:異常,/ by zero
*/
boolean b3=1>2&&2<(3/0);//短路與,第一個運算元的值為false,則不需要再計算後面的運算元;
System.out.println(b3);
boolean b4=1<2||2<(3/0);//短路或,第一個運算元的值為true,則不需要再計算後面的運算元;
System.out.println(b4);
}
}
3.4.2.5、位運算子(&,|,^)
/**
- 位運算子
- @author huchaofan
*/ public class TestOperator04 { public static void main(String[] args) { int a=3; int b=4; System.out.println(a&b);//測試按位與,3:0011;4:0100,按位與後為:0000,即為0; System.out.println(a|b);//測試按位或,3:0011;4:0100,按位或後為:0111,即為7; System.out.println(a^b);//測試按位異或,3:0011;4:0100,按位異或後為:0111,即為7; System.out.println(~a);//測試按位非,3:0011,按位非後為:1100,即為12; /*異常 * System.out.println(a~b); * Exception in thread “main” java.lang.Error: Unresolved compilation problem: * Syntax error on token “a”, AssignmentOperator expected after this token * 執行緒“主”JavaLang.Error中的異常:未解決的編譯問題: */
//移位
System.out.println("##############測試移位#############");
int c=3<<2;
System.out.println("c="+c);//3*2*2=12
System.out.println(12>>2);//12/2/2=3
System.out.println(12>>3);//1100,右移3位,變為0001,即為1;
int d=28>>3;
System.out.println("d="+d);//28為:0001 1100,右移3位,變成0000 0011,即為3;
int e=-28>>3;
System.out.println("e="+e);
/*
* 計算機中,數值一律用補碼錶示和儲存的,正數的補碼與原碼相同,負數的補碼為“其反碼+1”
* 反碼,顧名思義就是取反,對於正數來說,反碼與原碼相同;對於負數來說,反碼為原碼的各位取反(符號位除外)
* 向右移動三位後:移動的是補碼
*/
}
} 3.4.2.6、條件運算子
/**
- 測試條件運算子(三元運算子)
- @author huchaofan
*/ public class TestOperator06 { public static void main(String[] args) { System.out.println("###########測試條件運算子############"); int score = 80; int x=-100; String type = score<60?“不及格”:“及格”; System.out.println(type);
if(score<60) {
System.out.println("不及格");
}else {
System.out.println("及格");
}
System.out.println(x>0?1:(x==0?0:-1));//巢狀
}
}
3.4.2.7、字串連線符
/**
- 測試字串連線符
- @author huchaofan
*/ public class TestOperator05 { public static void main(String[] args) { System.out.println("##########測試字串連線符###########"); String a=“3”; int b=4; int c=5;
System.out.println(a+b);//34
System.out.println(b+c);//9,+兩側為數字,為加法運算
System.out.println(a+b+c);//345,從左向右運算;
System.out.println(b+c+a);//93
System.out.println(b+c+a+b+c);//9345
System.out.println("#####################");
char d='a';
System.out.println(d);
System.out.println(d+4);//97+4=101,char+int=int;
}
}