02 IDEA的安裝與運算子。
阿新 • • 發佈:2021-07-02
一、IDEA的安裝
1.1 IDEA首次驅動
檢視資料夾 IDEA操作文件\01_首次驅動專案和模組的建立.docx檔案 一.相關概念: 1.專案: project 2.模組: module 3.java原始碼存放位置:src 4.包(資料夾): package 5.java程式: 類,介面,抽象類等 二.操作步驟: 1.在某個碟符下建立一個名稱為myprojects的資料夾,用來儲存多個專案的 2.在myprojects資料夾下建立一個名稱為javase410的專案 3.在javase410的專案中建立名稱為day01/day02的Java模組 4.在day01/day02模組的src下建立名稱為itheima01的包 5.在itheima01包中建立HelloWorld類 三.注意: 1.不管是專案,模組,src,包在系統中的體現形式都是資料夾 2.但是src是建立模組後自動生成的,不需要自己建立 3.原始碼必須寫在src下才能執行,其它位置不可以
1.2 快捷鍵
1.psvm + 回車 main方法 2.sout + 回車 輸出語句 3.ctrl + d 複製當前行 4.ctrl + y 刪除當前行 5.ctrl + / 單行註釋 6.ctrl + shift + / 多行註釋 7.ctrl + alt + L 格式化程式碼(和QQ中的熱鍵衝突,必須把QQ中的熱鍵取消) 8.ctrl+shift+回車 自動補全程式碼 9.Alt + shift + ↑/↓ 將當前程式碼向上移動或者是向下移動 10.shift+回車 向下新增一行 11.ctrl+alt+回車 向上新增一行 12.alt+滑鼠選中多行 可以對多行進行同時操作
二、運算子
2.1 算術運算子
2.1.1 算術運算子加減乘除
package com.itheima03_suanshu; /* 算術運算子 1.運算子:對常量或者變數進行操作/運算的符號 2.表示式:用運算子把常量或者變數連線起來符合java語法的式子就可以稱為表示式。 3.數學運算子: (1)+: 加法運算 (2)-: 減法運算 (3)*: 乘法運算 (4)/: 除法運算 被除數 ÷ 除數 = 商(/:獲取的是除法運算中的商) ... 餘數 注意:整數相除,得到結果一定是整數 小數相除,得到的結果一定是小數 */ public class Demo03Operator { public static void main(String[] args) { //定義2個int變數,並初始化 //int a = 30; //int b = 20; int a = 30, b = 20; System.out.println(a + b);//30+20:50 System.out.println(a - b);//30-20:10 System.out.println(a * b);//30*20:600 System.out.println(a / b);//30/20: 1 } }
2.1.2 算術運算子%
%(取餘數)運算子
被除數 ÷ 除數 = 商(/:獲取的是除法運算中的商) ... 餘數(%:獲取的是除法運算中的餘數)
總結:
/和%都是做數學中的除法運算,只不過/獲取到的是除法運算中的商,%獲取到的是除法運算中的餘數
練習
/*
int變數num中儲存四位數字1234,利用/和%計算個位十位百位千位?
個位: 4
十位: 3
百位: 2
千位: 1
總結:
個位: num%10
十位: num/10%10
百位: num/100%10
千位: num/1000%10 如果確定是四位數字,可以省略%10
*/
public class Demo03Lianxi {
public static void main(String[] args) {
//定義int變數num,並初始化
int num = 1234;
//計算個位
int ge = num % 10;//把表示式num % 10的計算結果儲存到int變數ge中
//計算十位
int shi = num / 10 % 10;
//計算百位
int bai = num / 100 % 10;
//計算千位
int qian = num / 1000 % 10;
//此處 + 號 代表 字串的連線
System.out.println("個位: " + ge);
System.out.println("十位: " + shi);
System.out.println("百位: " + bai);
System.out.println("千位: " + qian);
}
}
2.1.3 算術運算子+的特殊用法
+的作用:
1.完成數學中的加法運算
2.完成字串的連線(拼接): 如果+的左右兩邊出現字串
注意:
字串拼接時是從左向右執行的。
如果字元和(整數或者小數)進行+拼接操作的時候會將字元轉換為ASCII碼再和整數進行算術運算
System.out.println(6+3+"你好") ------------>結果是 9你好
System.out.println(666+"你好"+666)--------->結果是 666你好666
System.out.println("你好"+666+666)--------->結果是 你好666666
System.out.println('A'+66+"你好")---------->結果是 131你好
System.out.println('a'+3.8+"你好")--------->結果是 100.8你好
System.out.println('你'+3.8+"你好")-------->結果是 20323.8你好
2.2 賦值運算子
+= 加後賦值 a+=b,將a+b的值給a a = a + b
-= 減後賦值 a-=b,將a-b的值給a a = a - b
*= 乘後賦值 a*=b,將a×b的值給a a = a * b
/= 除後賦值 a/=b,將a÷b的商給a a = a / b
%= 取餘後賦值 a%=b,將a÷b的餘數給a a = a % b
注意:
1.=: 表示的是賦值運算
2.==: 表示的是判斷是否相同
2.3 自增自減運算子
自增(++)自減(--)運算子
1.作用: 就是讓變數的值增加1(++)或者減少1(--)
2.使用格式:
(1)可以寫在變數的前面: ++a,--a
(2)可以寫在變數的後面: a++,a--
3.使用注意事項:
(1)單獨使用:++或者--自己獨佔一行,沒有其它多餘的操作
此時:
前++和後++效果一樣,都是讓變數的值增加1
前--和後--效果一樣,都是讓變數的值減少1
(2)混合使用: ++或者-- 和其它操作(賦值/列印)一起進行運算
將產生重大區別:
++/--寫在前面【先++/--,再使用】:
先把變數值增加1(++)或者減少1(--),然後把變數增加1(++)或者減少1(--)的結果進行其它運算
++/--寫在後面【先使用,再++/--】:
先使用變數增加1(++)或者減少1(--)之前的資料,然後變數的值再增加1(++)或者減少1(--)
public class Demo06ZiZeng {
public static void main(String[] args) {
int a = 1;
/*
因為++在變數a的前面,先把變數a的值增加1,變數a的值變成2,
然後再使用變數a增加1之後的結果2賦值給變數b,所以變數b的值是2
*/
int b = ++a;
System.out.println(a);//2
System.out.println(b);//2
int c = 1;
/*
因為++在c變數c的後面,先使用變數c增加1之前的值1,賦值給變數d,
所以d的值是1,然後c的值增加1,c變成2
*/
int d = c++;
System.out.println(c);//2
System.out.println(d);//1
}
}
2.4 關係運算符
1.作用:
用來比較兩個資料之間的大小關係,結果是boolean型別的資料
2.特點:
關係表示式不管寫的多麼複雜,或者多麼簡單,最終結果要麼是true(成立),要麼是false(不成立)
3.分類:
== a==b, 判斷a和b的值是否相等,成立為true,不成立為false
> a>b, 判斷a是否大於b,成立為true,不成立為false
>= a>=b, 判斷a是否大於或者等於b,成立為true,不成立為false
< a<b, 判斷a是否小於b,成立為true,不成立為false
<= a<=b, 判斷a是否小於或者等於b,成立為true,不成立為false
!= a!=b, 判斷a和b的值是否不相等,成立為true,不成立為false
4.注意:
1.=: 表示的是賦值運算
2.==: 表示的是判斷是否相同
//關係表示式
public class Demo06GuanXi {
public static void main(String[] args) {
int a = 10, b = 20;
System.out.println(a > b);//10 > 20: false
System.out.println(a >= b);//10 >= 20: false
System.out.println(a < b);//10 < 20: true
System.out.println(a <= b);//10 <= 20: true
System.out.println(a != b);//10 != 20: true
System.out.println(a == b);//10 == 20: false
//把變數b的值賦值給變數a,然後再列印a的值
System.out.println(a = b);//20
}
}
2.5 邏輯運算子
1.作用:
用來連線多個布林表示式的,結果也是布林型別
2.分類:
(1)邏輯與(&:shift+7)【有false,則false】:
表示並且的意思,同時成立的意思
多個條件都為true,結果才為true
多個條件只要有一個為false,結果就是false
(2)邏輯或(|:shift+\)【有true,則true】:
表示或者的意思
多個條件只要有一個為true,結果就是true
多個條件都是false,結果就是false
(3)邏輯異或(^:shift+6): 目前暫時不用
相同為false,不同為true
(4)邏輯非(!:shift+1):
!true: 就是false
!false: 就是true
//邏輯運算子
public class Demo07LuoJi {
public static void main(String[] args) {
int a = 10, b = 20, c = 30;
System.out.println((a > b) & (a > c));//false & false --> false
System.out.println((a < b) & (a < c));//true & true --> true
System.out.println((a > b) & (a < c));//false & true --> false
System.out.println((a < b) & (a > c));//true & false --> false
System.out.println("-------------------");
System.out.println((a > b) | (a > c));//false | false --> false
System.out.println((a < b) | (a < c));//true | true --> true
System.out.println((a > b) | (a < c));//false | true --> true
System.out.println((a < b) | (a > c));//true | false --> true
System.out.println("-------------------");
System.out.println((a > b) ^ (a > c));//false ^ false --> false
System.out.println((a < b) ^ (a < c));//true ^ true --> false
System.out.println((a > b) ^ (a < c));//false ^ true --> true
System.out.println((a < b) ^ (a > c));//true ^ false --> true
System.out.println("-------------------");
System.out.println(!true);//false
System.out.println(!false);//true
System.out.println(a != b);//true
System.out.println(!(a == b));//!false --> true
}
}
2.5.1 邏輯運算子的短路效果
1.基本使用
(1)短路邏輯與(&&): 左側為false,右側不進行計算
(2)短路邏輯或(||): 左側為true,右側不進行計算
2.使用區別:
(1)&&和&: 最終的結果是相同的,但是&&具有短路的效果,效率高
(2)||和|: 最終的結果是相同的,但是||具有短路的效果,效率高
3.注意:
以後實際學習/開發過程中,需要連線多個條件時,強烈建議使用&& 或者 ||
public class Demo08DuanLu {
public static void main(String[] args) {
int a = 1;
/*
表示式(3 < 2) && (++a) > 1: 從左向右計算
先計算表示式3<2的結果:false
對於&&而言,左側為false,已經決定了最終的結果為false,&&的右側不再計算,
所以a的值沒有變化,還是1
*/
System.out.println((3 < 2) && ((++a) > 1));//false
System.out.println(a);//1
int b = 1;
/*
表示式(3 < 2) & (++b) > 1: 從左向右計算
先計算表示式3<2的結果:false
對於&而言,雖然左側為false,已經決定了最終的結果為false,
但是仍然要計算&的右側的表示式,導致b的值增加1,b變成2
*/
System.out.println((3 < 2) & ((++b) > 1));//false
System.out.println(b);//2
System.out.println("--------------");
int c = 1;
/*
表示式(3 > 2) || (++c) > 2: 從左向右計算
先計算表示式3 > 2的結果:true
對於||而言,左側為true,已經決定了最終的結果為true,||的右側不再計算,
所以c的值沒有變化,還是1
*/
System.out.println((3 > 2) || ((++c) > 2));//true
System.out.println(c);//1
int d = 1;
/*
表示式(3 > 2) | (++d) > 2: 從左向右計算
先計算表示式3>2的結果:true
對於|而言,雖然左側為true,已經決定了最終的結果為true,
但是仍然要計算|的右側的表示式,導致d的值增加1,d變成2
*/
System.out.println((3 > 2) | ((++d) > 2));//true
System.out.println(d);//2
}
}
2.6 三元運算子格式
1.格式:
資料型別 變數名稱 = 布林表示式1 ? 表示式2 : 表示式3;
注意:
?號前面的式子的結果必須是布林型別
2.執行流程:
(1)計算布林表示式1的結果,看是true,還是false
(2)如果布林表示式1的結果是true,取表示式2的結果賦值給左側的變數
(3)如果布林表示式1的結果是false,取表示式3的結果賦值給左側的變數
練習
需求:
一座寺廟裡住著兩個和尚,已知他們的身高分別為150cm、210cm,請用程式實現獲取這兩個和尚的最高身高。
實現步驟:
1.定義兩個變數用於儲存和尚的身高,單位為cm,這裡僅僅體現數值即可。
2.用三元運算子獲取兩個和尚的較高身高值,並用臨時身高變數儲存起來。
3.輸出結果
public class OperatorTest02 {
public static void main(String[] args) {
//1.定義兩個變數用於儲存和尚的身高,單位為cm,這裡僅僅體現數值即可。
int h1 = 150;
int h2 = 210;
//2.用三元運算子獲取兩個和尚的較高身高值,並用臨時身高變數儲存起來。
int maxH = h1 > h2 ? h1 : h2;
//3.輸出結果
System.out.println("兩個和尚的最大身高:" + maxH);
}
}