溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java中%指的是什么

發(fā)布時(shí)間:2023-03-06 17:02:54 來(lái)源:億速云 閱讀:157 作者:iii 欄目:開(kāi)發(fā)技術(shù)

本篇內(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。

表 1 一元算術(shù)運(yùn)算
運(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é)果如下圖所示:

Java中%指的是什么

二元運(yùn)算符

Java 語(yǔ)言中算術(shù)運(yùn)算符的功能是進(jìn)行算術(shù)運(yùn)算,除了經(jīng)常使用的加(+)、減(-)、乘(*)和除(\)外,還有取模運(yùn)算(%)。加(+)、減(-)、乘(*)、除(\)和我們平常接觸的數(shù)學(xué)運(yùn)算具有相同的含義。具體說(shuō)明參見(jiàn)表 2。

表 2 二元算術(shù)運(yùn)算
運(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é)果如下所示。

Java中%指的是什么

本示例中使用了 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í)!

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI