您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“Java中%指的是什么”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Java中%指的是什么”吧!
在Java中,“%”是取余的意思,是一個(gè)二元算術(shù)運(yùn)算符,可進(jìn)行除法運(yùn)算并獲取余數(shù),語(yǔ)法“操作數(shù)1 % 操作數(shù)2”。取余運(yùn)算符“%”的操作數(shù)通常是正整數(shù)也可以是負(fù)數(shù)甚至是浮點(diǎn)數(shù),如果負(fù)數(shù)參與此運(yùn)算,則結(jié)果的正負(fù)取決于前面一個(gè)數(shù)是正數(shù)還是負(fù)數(shù)。
Java中的%是取余的意思,是一個(gè)算術(shù)運(yùn)算符,可實(shí)現(xiàn)求余運(yùn)算,進(jìn)行除法運(yùn)算并獲取余數(shù)。
取余運(yùn)算符是%是一個(gè)雙目運(yùn)算符,它的操作數(shù)通常是正整數(shù)也可以是負(fù)數(shù)甚至是浮點(diǎn)數(shù),如果負(fù)數(shù)參與此運(yùn)算,則結(jié)果的正負(fù)取決于前面一個(gè)數(shù)是正數(shù)還是負(fù)數(shù)。
對(duì)于整數(shù),java的取余運(yùn)算規(guī)則如下
a%b=a-(a/b)*b
5%3=5-(5/3)*3=2
5%-3=5-(5/-3)*-3=2
-5%3=-5-(-5/3)*3=-2
-5%-3=-5-(-5/-3)*-3=-2
如果操作數(shù)中有浮點(diǎn)數(shù)則采用的規(guī)則為
a%b=a-(b*q)
,這里q=int(a/b)
5.2%3.1=5.2-1*3.1=2.1
5.2%-3.1=5.2-(-1)*(-3.1)=2.1
-5.2%3.1=-5.1-(-1)*3.1=-2.1
-5.2%-3.1=-5.1-(-1)*(-3.1)=-2.1
擴(kuò)展知識(shí):
Java 中的算術(shù)運(yùn)算符主要用來(lái)組織數(shù)值類型數(shù)據(jù)的算術(shù)運(yùn)算,按照參加運(yùn)算的操作數(shù)的不同可以分為一元運(yùn)算符和二元運(yùn)算符。
一元運(yùn)算符
算術(shù)一元運(yùn)算一共有 3 個(gè),分別是 -、++ 和 --。具體說(shuō)明參見(jiàn)表 1。
運(yùn) 算 符 | 名 稱 | 說(shuō) 明 | 例 子 |
---|---|---|---|
- | 取反符號(hào) | 取反運(yùn)算 | b=-a |
++ | 自加一 | 先取值再加一,或先加一再取值 | a++ 或 ++a |
-- | 自減一 | 先取值再減一,或先減一再取值 | a-- 或 --a |
表 1 中,-a 是對(duì) a 取反運(yùn)算,a++ 或 a-- 是在表達(dá)式運(yùn)算完后,再給 a 加一或減一。而 ++a 或 --a 是先給 a 加一或減一,然后再進(jìn)行表達(dá)式運(yùn)算。
int a = 12;
System.out.println(-a);
int b = a++;
System.out.println(b);
b = ++a;
System.out.println(b);
上述代碼第 2 行是 -a,是把 a 變量取反,結(jié)果輸出是 -12。第 4 行代碼是先把 a 賦值給 b 變量再加一,即先賦值后 ++,因此輸出結(jié)果是 12。第 6 行代碼是把 a 加一,然后把 a 賦值給 b 變量,即先 ++ 后賦值,因此輸出結(jié)果是 14。
輸出結(jié)果如下圖所示:
二元運(yùn)算符
Java 語(yǔ)言中算術(shù)運(yùn)算符的功能是進(jìn)行算術(shù)運(yùn)算,除了經(jīng)常使用的加(+)、減(-)、乘(*)和除(\)外,還有取模運(yùn)算(%)。加(+)、減(-)、乘(*)、除(\)和我們平常接觸的數(shù)學(xué)運(yùn)算具有相同的含義。具體說(shuō)明參見(jiàn)表 2。
運(yùn) 算 符 | 名 稱 | 說(shuō) 明 | 例 子 |
---|---|---|---|
+ | 加 | 求 a 加 b 的和,還可用于 String 類型,進(jìn)行字符串連接操作 | a + b |
- | 減 | 求 a 減 b 的差 | a - b |
* | 乘 | 求 a 乘以 b 的積 | a * b |
/ | 除 | 求 a 除以 b 的商 | a / b |
% | 取余 | 求 a 除以 b 的余數(shù) | a % b |
算術(shù)運(yùn)算符都是雙目運(yùn)算符,即連接兩個(gè)操作數(shù)的運(yùn)算符。優(yōu)先級(jí)上,*、/、% 具有相同運(yùn)算級(jí)別,并高于 +、-(+、- 具有相同級(jí)別)。例如:
int a = 4, b = 2, c = 3;
int d = a * (b + c) % c;
這種運(yùn)算規(guī)則與數(shù)學(xué)運(yùn)算中的規(guī)則是相同的。首先計(jì)算賦值符號(hào)(=)右邊配對(duì)的括號(hào)內(nèi)的值,其次按從左向右的結(jié)合方向計(jì)算乘法,最后做求余運(yùn)算,表達(dá)式的結(jié)果為 2, 然后把 2 賦值給 d。
例如:
①int x=2,y=1;
表達(dá)式 y/x 的結(jié)果是 0。
②float x=2.0f; int y=1;
表達(dá)式 y/x 的結(jié)果是 0.5。
在 ① 中整型變量 x 和 y 相除,其結(jié)果仍為整型數(shù)據(jù) 0;在 ② 中由于兩個(gè)不同類型的數(shù)據(jù)進(jìn)行運(yùn)算,此時(shí)首先要進(jìn)行類型轉(zhuǎn)換,會(huì)把 int 型的 y 轉(zhuǎn)換成與 x 一樣的 float 型,然后相除,最終結(jié)果為 float 類型的數(shù)字 0.5。
【例1】編寫(xiě)一個(gè)程序,輸出不同類型的兩個(gè)數(shù),執(zhí)行相加、相減、相乘、相除和求余后輸入結(jié)果。
public static void main(String[] args) {
float f1 = 9 % 4;// 保存取余后浮點(diǎn)類型的結(jié)果
double da = 9 + 4.5; // 雙精度加法
double db = 9 - 3.0; // 雙精度減法
double dc = 9 * 2.5; // 雙精度乘法
double dd = 9 / 3.0; // 雙精度除法
double de = 9 % 4; // 雙精度取余
System.out.println("整數(shù)的算術(shù)運(yùn)算"); // 整數(shù)的加、減、乘、除和取余
System.out.printf("9+4=%d \n", 9 + 4);
System.out.printf("9-4=%d \n", 9 - 4);
System.out.printf("9*4=%d \n", 9 * 4);
System.out.printf("9/4=%d \n", 9 / 4);
System.out.printf("9%%4=%d \n", 9 % 4);
System.out.println("\n浮點(diǎn)數(shù)的算術(shù)運(yùn)算"); // 浮點(diǎn)數(shù)的加、減、乘、除和取余
System.out.printf("9+4.5f=%f \n", 9 + 4.5f);
System.out.printf("9-3.0f=%f \n", 9 - 3.0f);
System.out.printf("9*2.5f=%f \n", 9 * 2.5f);
System.out.printf("9/3.0f=%f \n", 9 / 3.0f);
System.out.printf("9%%4=%f \n", f1);
System.out.println("\n雙精度數(shù)的算術(shù)運(yùn)算"); // 雙精度數(shù)的加、減、乘、除和取余
System.out.printf("9+4.5=%4.16f \n", da);
System.out.printf("9-3.0=%4.16f \n", db);
System.out.printf("9*2.5=%4.16f \n", dc);
System.out.printf("9/3.0=%4.16f \n", dd);
System.out.printf("9%%4=%4.16f \n", de);
System.out.println("\n字符的算術(shù)運(yùn)算"); // 對(duì)字符的加法和減法
System.out.printf("'A'+32=%d \n", 'A' + 32);
System.out.printf("'A'+32=%c \n", 'A' + 32);
System.out.printf("'a'-'B'=%d \n", 'a' - 'B');
}
保存文件并運(yùn)行,輸出的結(jié)果如下所示。
本示例中使用了 4 種類型來(lái)執(zhí)行算術(shù)運(yùn)算。其中,整數(shù)類型的結(jié)果最容易理解,浮點(diǎn)型和雙精度型返回的結(jié)果都帶有小數(shù),字符型將會(huì)把字符轉(zhuǎn)換為 ASCII 碼再運(yùn)算。
從輸出結(jié)果中可以看到,整數(shù)之間的運(yùn)算結(jié)果只保留整數(shù)部分,浮點(diǎn)型運(yùn)算時(shí)保留 6 位小數(shù)部分,雙精度運(yùn)算時(shí)則保留 16 位小數(shù)部分。
注意:Java 語(yǔ)言算術(shù)運(yùn)算符的優(yōu)先級(jí)是先乘除后加減。例如在表達(dá)式“a-b*c”中,b 的左側(cè)為減號(hào),右側(cè)為乘號(hào),而乘號(hào)優(yōu)先級(jí)高于減號(hào),因此該表達(dá)式可以轉(zhuǎn)換為“a-(b*c)”。
如果在一個(gè)表達(dá)式中的多個(gè)算術(shù)運(yùn)算符的優(yōu)先級(jí)別相同,例如“a-b+c”,此時(shí)將按照運(yùn)算符的結(jié)合方向決定順序。算術(shù)運(yùn)算符的結(jié)合方向都是“從左至右”,即先左后右。因此 b 先與減號(hào)結(jié)合,執(zhí)行“a-b”的運(yùn)算,再執(zhí)行加 c 的運(yùn)算。
到此,相信大家對(duì)“Java中%指的是什么”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。