一起學JAVA基礎之運算符
1 運算符
1.1 概述
運算符 用于連接 表達式 的 操作數(shù),并對操作數(shù)執(zhí)行運算。
例如,表達式num1+num2,其操作數(shù)是num1和num2,運算符是”+”。
在java語言中,運算符可分為5種類型:
算術運算符、賦值運算符、關系運算符、邏輯運算符、位運算符。
根據(jù)操作數(shù)的不同,運算符又分為單目運算符、雙目運算符和三目運算符。
單目運算符只有一個操作數(shù),雙目運算符有兩個操作數(shù),三目運算符則有三個操作數(shù)。
位運算符涉及到二進制位的運算,在java 程序中運用不是很多。
1.2 運算符速查表

1.3 練習:測試自增自減
創(chuàng)建包: cn.tedu.basic
創(chuàng)建類: TestOperator.java
package cn.tedu.basic;
/**本類用于測試取余運算符*/
public class TestOperator {
//0.創(chuàng)建程序的入口函數(shù)main
public static void main(String[] args) {
//1.測試除法與取余數(shù)
System.out.println(25 / 10);//2
System.out.println(25 % 10);//5
//2.練習1:獲取一個兩位數(shù)59的十位與個位
int x = 59;
System.out.println(x/10);//打印十位,5
System.out.println(x%10);//打印個位,9
//3.練習2:獲取一個三位數(shù)159的百位、十位與個位
int y = 159;
System.out.println(y / 100);//打印百位
System.out.println(y / 10 % 10);//打印十位
System.out.println(y % 10);//打印個位
//4.測試自增自減運算符
/** 前綴式:符號在前:++a --a ,先改變變量本身的值,再使用,比如打印
* 后綴式:符號在后: a++ a--,先使用,再改變變量本身的值
* ++:相當于給變量本身的值+1
* --: 相當于給變量本身的值-1*/
System.out.println("我是一個無情的分界線");
/**普通的四則運算并不會改變變量本身的值
* 自增自減運算符才會改變變量本身的值*/
int z = 1;
System.out.println(z+4);//5
System.out.println(z);//1
int a = 1;
System.out.println(++a);//2
System.out.println(a);//2
int b = 1;
System.out.println(b++);//1
System.out.println(b);//2
int c = 1;
System.out.println(--c);//0,符號在前,先自減,再打印
System.out.println(c);//0,上面已經(jīng)自減過了
int d = 1;
System.out.println(d--);//1,符號在后,先打印,再自減
System.out.println(d);//0,打印過后,自減成0
//之前的代碼會對后面的代碼產(chǎn)生影響,c的值是0
System.out.println(c);//0
System.out.println(--c-c-c--);//1,-1-(-1)-(-1)=1
System.out.println(c);//-2,經(jīng)歷了兩次自減,所以0-2=-2
}
}
1.4 練習:測試邏輯運算符
創(chuàng)建包: cn.tedu.basic
創(chuàng)建類: TestOperator2.java
package cn.tedu.basic;
/**本類用于測試邏輯運算符*/
public class TestOperator2 {
public static void main(String[] args) {
/**與:全真才真*/
System.out.println("測試單與:");
System.out.println(true & true);
System.out.println(true & false);
System.out.println(false & true);
System.out.println(false & false);
System.out.println("測試雙與:");
System.out.println(true && true);
System.out.println(true && false);
System.out.println(false && true);
System.out.println(false && false);
/**或:全假才假*/
System.out.println("測試單或:");
System.out.println(true | true);
System.out.println(true | false);
System.out.println(false | true);
System.out.println(false | false);
System.out.println("測試雙或:");
System.out.println(true || true);
System.out.println(true || false);
System.out.println(false || true);
System.out.println(false || false);
}
}
1.5 練習:求兩數(shù)的最大值
創(chuàng)建包: cn.tedu.basic
創(chuàng)建類: TestMaxNum.java
package cn.tedu.basic;
import java.util.Scanner;
package cn.tedu.basic;
import java.util.Scanner;
/**需求:接收用戶輸入的兩個整數(shù),并比較輸出這兩個數(shù)的最大值*/
public class TestMaxNum {
public static void main(String[] args) {
//1.提示用戶輸入
System.out.println("請輸入您要比較的第一個整數(shù):");
//2.接收用戶輸入的整數(shù),并把這個值交給變量a來保存
int a = new Scanner(System.in).nextInt();
System.out.println("請輸入您要比較的第二個整數(shù):");
int b = new Scanner(System.in).nextInt();
//3.比較接收兩個數(shù),使用三元運算符
/**1 ? 2 : 3
* 1是表達式,若1的結果為true,結果取2位置,若1的結果為false,結果取3位置
* */
//4.定義變量max來保存比較的最大值
int max = a > b ? a : b;
//5.打印最大值
System.out.println("兩個數(shù)的最大值是:"+max);
/**思考題:如何判斷3個數(shù)的最大值? int max = a>b?(a>c?a:c):(b>c?b:c);*/
}
}
1.6 練習:求平年閏年
創(chuàng)建包: cn.tedu.basic
創(chuàng)建類: TestYear.java
需求:接收用戶輸入的年份,判斷是平年還是閏年
需求:接收用戶輸入的年份,判斷是平年還是閏年
package cn.tedu.basic;
import java.util.Scanner;
/**
* 需求:接收用戶輸入的年份,判斷是平年還是閏年
* 如果年份是閏年,需要滿足下面兩個條件之一:
* 條件1:能被4整除,并且不能被100整除
* 條件2:能被400整除
* */
public class Test3_Year {
public static void main(String[] args) {
//1.提示并接收用戶輸入的年份
System.out.println("請輸入您要判斷的年份:");
int year = new Scanner(System.in).nextInt();
//2.定義一個變量用來保存結果
String result = "平年";//默認值是平年,假設每年都是平年
//3.判斷用戶輸入的年份是否滿足閏年的條件
/**解決方案1*/
/**條件1:能被4整除,并且不能被100整除*/
// if(year % 4 == 0) {//能被4整除
// if(year %100 != 0) {//不能被100整除
// result = "閏年";//符合閏年的條件1,修改結果為閏年
// }
// }
// /**條件2:能被400整除*/
// if(year % 400 == 0) {//能被400整除
// result = "閏年";//符合閏年的條件2,修改結果為閏年
// }
/**解決方案2*/
/**判斷結構 if(判斷條件){滿足判斷條件以后執(zhí)行的代碼} */
//if(條件1 || 條件2){是閏年 }
//if((小條件1 && 小條件2) || 條件2){ 是閏年 }
//if((能被4整除 && 不能被100整除) || 能被400整除){ 是閏年 }
if((year % 4 == 0 && year %100 != 0) || year % 400 == 0){
result = "閏年";//符合閏年的條件,修改結果為閏年
}
System.out.println(year+"年是"+result);
}
}
2 拓展補充:
2.1 總結1:算術運算符之自增自減運算符
a是操作數(shù),++是自增運算符,- -是自減運算符,自增和自減運算符即可以放在變量的前面,也可以放在變量的后面,例如:a++、++a、a- -、- -a等。
自增(++):將變量的值加1
分前綴式(如++a)和后綴式(如a++)。前綴式是先加1再使用;后綴式是先使用再加1。
自減(- -):將變量的值減1
分前綴式(如- -a)和后綴式(如a- -)。前綴式是先減1再使用;后綴式是先使用再減1。
2.2 總結2:邏輯運算符
邏輯運算符連接兩個關系表達式或布爾變量,用于解決多個關系表達式的組合判斷問題
注意邏輯運算符返回的運算結果為布爾類型
通常,我們用0表示false,用1表示true
與:表示并且的關系
&單與: 1 & 2 ,結果想要是true,要求1和2都必須是true
&&雙與(短路與):1 && 2 ,當1是false時,2會被短路,提高程序的效率
或:表示或者的關系
|單或: 1 | 2,結果想要是true,要求1和2只要有一個為true就可以
||雙或(短路或):1 || 2,當1是true時,2會被短路,提高程序效率
2.3 總結3:優(yōu)先級控制
當一個表達式包含多個運算符時,就需要考慮運算符的優(yōu)先級,優(yōu)先級高的運算符先參與運算,優(yōu)先級低的運算符后參與運算。在實際的開發(fā)中,不需要特別去記憶運算符的優(yōu)先級別,也不要刻意的使用運算符的優(yōu)先級別,對于不清楚優(yōu)先級的地方使用小括號輔助進行優(yōu)先級管理。
通常優(yōu)先級由高到底的順序依次是:1. 括號級別最高,逗號級別最低;
2. 單目 > 算術 > 位移 > 關系 > 邏輯 > 三目 > 賦值。
3. 除了單目運算符、賦值運算符和條件運算符,其他的運算符都是從左到右結合的。
總結
到此這篇關于JAVA基礎之運算符的文章就介紹到這了,更多相關JAVA運算符內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Java 并發(fā)編程學習筆記之Synchronized底層優(yōu)化
這篇文章主要介紹了Java 并發(fā)編程學習筆記之Synchronized底層優(yōu)化的相關資料,主要包含了重量級鎖,輕量級鎖,偏向鎖和其他優(yōu)化等方面,有需要的小伙伴可以參考下2016-05-05
基于UncategorizedSQLException異常處理方案
這篇文章主要介紹了基于UncategorizedSQLException異常處理方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12
SpringBoot和VUE源碼直接整合打包成jar的踩坑記錄
這篇文章主要介紹了SpringBoot和VUE源碼直接整合打包成jar的踩坑記錄,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03

