ASCII碼錶、類型轉換、Random、Scanner、運算符、三目、選擇控制
一、ASCII碼錶
因為計算機內部只能識別01二進位數字,對於數字而言,可以直接轉換為二進位,但是對於人類的文字而言如何轉換為二進位的01呢?因為自己算最早出現在美國,所以美國就編寫了一張碼錶,將人類的語言和符號和計算機中的01進行對應。
American Standard Code for Information Interchange,美國信息交換標準代碼。

ASCII碼錶
當輸入人類語的時候,操縱系統就會去查詢對應的碼錶,將這些語言轉換為對應的二進位,因為是美國人的語言只有英文,所以ASCII中只有英文和一些標點,每個英文字母和符號對應一個位元組(8位)的二進位數字。


單個英文字母對應一個位元組
不需要我們全部記憶,只需大家記住(0-9)對應(48-57),(A-Z)對應(65-90),(a-z)對應(97-122)。
因為不能識別中文,所以中國編寫自己第一張簡體中文編碼表GB2312(簡體中文,符號,日本假名),因為存的字有限,所以後來升級成為GBK(增加繁體中文和少數名族文字),我們的操作系統,如果設置成中文就是GBK編碼。
因為後來出現了很多碼錶,所以世界標準組織ISO推出了Unicode編碼表(萬國碼錶),規定一個字元佔用兩個位元組。
所有的編碼表都支持ASCII編碼表。
二、基本數據類型的轉換
1、自動轉換:範圍小的可以向範圍大的進行轉換
byte <short < int < long < floa < double
2、強制轉換:範圍大的向小的進行轉換,需要強制類型轉換
小範圍數據類型 標識符 = (小範圍數據類型) 變數名稱
int b = a;
//小範圍的數向大範圍的數轉換的時候直接轉換
//強制類型轉換,大範圍的數向小範圍的數轉換的時候
//強制類型轉換的格式是
//小範圍類型 標識符 = (小範圍類型) 大範圍的變數
byte c = (byte) b;三、int和char類型數據轉換
char轉換成int,字元型和數值型進行轉換的時候都會查詢編碼表,由於int 4個位元組,char 2個位元組,所以屬於自動的類型轉換。
int轉換成char,需要強制類型轉換。
如果char是漢字,轉換成整數查詢的就是Unicode編碼表。
char類型的最大整數是65535,因為char沒有負數。
char可以直接賦值為Unicode編碼,格式為uxxxx,十六進位。
char a = 'a';
int b = a;
System.out.println(b); //97
int c = 97;
char d = (char)c;
System.out.println(d); //a
char chineseChar = 'u674e';
System.out.println(chineseChar); //李四、運算符
4.1、算數運算符

算數運算符
加法運算符在連接字元串時要注意,只有直接與字元串相加才會轉成字元串。
除法「/」當兩邊為整數時,取整數部分,舍餘數。當其中一邊為浮點型時,按正常規則相除。
「%」應用於奇偶判斷和012012類似的數據結構,為整除取余符號,小數取余沒有意義。結果符號與被取余符號相同。
整數做被除數,0不能做除數,否則報錯。
++a和a++的區別。
// 參與運算的時候,如果是 a++,先賦值後運算,如果是++a,先運算,後賦值
int a=1;
int b = a++;
System.out.println("a:"+a+"---------"+"b:"+b); //a:2---------b:1
int d = ++a;
System.out.println("a:"+a+"---------"+"d:"+d); //a:3---------d:34.2、賦值運算符

賦值運算符
4.3、比較運算符

比較運算符
4.4、邏輯運算符

邏輯運算符
當使用短路與或者短路或時,只要能判斷出結果則後邊的部分就不再判斷。
4.5、位運算符

位運算符
^運算規律
- 1^0=1,0^0=0,任何數和0相異或得到的是這個數本身。
- 0^1=1,1^1=0,任何數和1相異或得到的是這個數的相反。
- 一個數自己和自己異或得到的是0。
五、三目算符
- 必須有結果,?後必須跟有東西
System.out.println( 1<5 ? 「success」 : 「fail」 );六、選擇控制語句
if控制語句
當括弧內的內容是true的時候,執行{}中的內容
//並列if判斷,無論上面的條件成立與否,下面的if都會進行判斷
if(a < b){
System.out.println("a小於b");
}
if(a > b){
System.out.println("a大於b");
}
if(a == b){
System.out.println("a等於b");
}if….else..控制語句
//上麵條件成立下面就不在判斷
if(a < b){
System.out.println("a小於b");
}else{
System.out.println("a不小於b");
}if…else if…else控制語句
//上麵條件成立下面就不在判斷
if(a < b){
System.out.println("a小於b");
}else if(a > b) {
System.out.println("a大於b");
}else {
System.out.println("a等於b");
}多條件判斷
if(1<a&&a<5){
System.out.println("並且是&&,兩個條件都為真");
}
if(a==1 || a==3){
System.out.println("或者是||,兩個條件至少有一個為真");
}
if(a!=3 || a!= 4){
System.out.println("或者是||,兩個條件至少有一個為真,!=表示不等於");
}switch case語句
switch後邊的表達式只能是整型字元型(byte,short,int,char),枚舉類型,其中jdk7之後支持字元串型。
int day = 4;
switch (day) {
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期日");
break;
default:
break;
}
//星期四 /*
* 獲取當前年份月份的天數
* 1、獲取當前月份,switch進行判斷
* 2、獲取當前的年份,使用if進行判斷
* 3、(年份被4整除並且不能被100整除)或者年份能被400整除
* 4、輸出29天
* 5、如果上述條件不成立,輸出28天
*/
int month = 2;
int year = 2118;
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println("31天");
break;
case 4:
case 6:
case 9:
case 11:
System.out.println("30天");
break;
default:
if((year%4==0&&year%100!=0)||year%400==0){
System.out.println("29天");
}else{
System.out.println("28天");
}
break;
}七、Scanner類
- 屬於引用類型,創建的時候需要固定格式 數據類型 變數名 = new 數據類型();
- 需要導入所在的包,導包格式: importjava.util.Scanner;
- 創建對象 Scanner sc = new Scanner(System.in);
- 獲取輸入的整數 int a = sc.nextInt();
- 獲取輸入的字元串 String str = sc.nextLine();
- 注意sc.nextInt()和sc.nextLine()會中斷程序。
八、Random類
- 需要導入所在的包,導包格式: importjava.util.Random;
- 創建對象 Random ran = new Random();
- 獲取隨機整數範圍是[0,50): int a =ran.nextInt(50);
- 獲取隨機小數範圍是[0,1): double b =ran.nextDouble();
- 如何獲取一個[a,b]的隨機數 int a =rand.nextInt(b – a + 1) + a;
九、循環結構
while循環和do–while循環
while循環的格式
當條件為真的時候執行循環體中的內容
Random ran = new Random();
int a = ran.nextInt(20)+1;
while(a > 12){
System.out.println(1111);
a = ran.nextInt(20)+1;
}do–while循環
先執行do中的內容,然後進行條件判斷,如果條件為true,執行循環體中的內容
在do中定義的變數只能在do中使用,不能在條件中和do–while外進行使用
int b = 0;
do {
b = 13;
System.out.println(11111);
}
while (b < 10){
System.out.println(22222);
};for循環
for循環的格式
//先定義一個變數i,當i<10的時候執行循環內容,每執行一次
//在for中定義的i,只能在for中使用
for(int i = 0;i < 10; i++){
System.out.println("你好");
System.out.println(i);
}
for(int i = 0; i < 9; i++){
for(int j = 0; j < 10; j ++){
System.out.println(i+"----"+j);
}
}break
break表示跳出當前循環,如果雙層for循環寫在外層跳出外層,寫在內層跳出內層。
continue
continue表示跳出當前此次循環,下次循環繼續,如果雙層for循環寫在外層跳出外層,寫在內層跳出內層。
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/281659.html
微信掃一掃
支付寶掃一掃