Dalam Java, "%" bermaksud baki Ia adalah operator aritmetik binari yang boleh melakukan operasi bahagi dan mendapatkan baki Sintaksnya ialah "operand 1 % operan 2". Operan pengendali yang selebihnya "%" biasanya merupakan integer positif atau nombor negatif atau bahkan nombor titik terapung Jika nombor negatif mengambil bahagian dalam operasi ini, hasilnya bergantung pada sama ada nombor sebelumnya adalah positif atau negatif.
Persekitaran pengendalian tutorial ini: sistem Windows 7, versi Java 8, komputer DELL G3.
% dalam Java bermaksud baki , iaitu pengendali aritmetik yang boleh melakukan operasi baki, melakukan operasi bahagi dan mendapatkan baki.
Pengendali selebihnya ialah %, yang merupakan pengendali binari biasanya merupakan integer positif atau nombor negatif atau nombor titik terapung jika nombor negatif mengambil bahagian dalam operasi ini, tanda hasilnya bergantung kepada yang sebelumnya sama ada nombor itu positif atau negatif.
Untuk integer, peraturan operasi Java yang selebihnya adalah seperti berikut
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
Jika terdapat nombor titik terapung dalam operan, peraturan yang diterima pakai ialah
a%b=a-(b*q)
, di sini 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
Pengetahuan lanjutan:
Pengendali aritmetik di Jawa digunakan terutamanya untuk mengatur operasi aritmetik pada data jenis berangka, bergantung pada operan yang mengambil bahagian dalam operasi itu boleh dibahagikan kepada operator unari dan operator binari.
Operator unari
Terdapat tiga operasi unari aritmetik, iaitu -, ++ dan --. Lihat Jadual 1 untuk arahan khusus.
运 算 符 | 名 称 | 说 明 | 例 子 |
---|---|---|---|
- | 取反符号 | 取反运算 | b=-a |
++ | 自加一 | 先取值再加一,或先加一再取值 | a++ 或 ++a |
-- | 自减一 | 先取值再减一,或先减一再取值 | a-- 或 --a |
Dalam Jadual 1, -a ialah operasi penyongsangan a, dan a++ atau a-- ialah menambah atau menolak satu kepada a selepas operasi ungkapan selesai. Dan ++a atau --a mula-mula menambah atau menolak satu kepada a, dan kemudian melaksanakan operasi ungkapan.
int a = 12; System.out.println(-a); int b = a++; System.out.println(b); b = ++a; System.out.println(b);
Barisan kedua kod di atas ialah -a, yang menyongsangkan pembolehubah dan output hasil ialah -12. Baris keempat kod adalah untuk mula-mula menetapkan a kepada pembolehubah b dan kemudian menambah satu, iaitu, memberikan nilai dahulu dan kemudian ++, jadi hasil output ialah 12. Baris ke-6 kod menambah satu kepada a, dan kemudian memberikan a kepada pembolehubah b, iaitu, ++ dahulu dan kemudian tugasan, jadi hasil output ialah 14.
Hasil output adalah seperti yang ditunjukkan di bawah:
Pengendali binari
Pengendali aritmetik dalam bahasa Java Fungsi daripada adalah untuk melaksanakan operasi aritmetik Sebagai tambahan kepada penambahan (+), penolakan (-), pendaraban (*) dan bahagi (), terdapat juga operasi modulo (%). Penambahan (+), penolakan (-), pendaraban (*), dan pembahagian () mempunyai maksud yang sama dengan operasi matematik yang biasa kita hadapi. Lihat Jadual 2 untuk arahan khusus.
运 算 符 | 名 称 | 说 明 | 例 子 |
---|---|---|---|
+ | 加 | 求 a 加 b 的和,还可用于 String 类型,进行字符串连接操作 | a + b |
- | 减 | 求 a 减 b 的差 | a - b |
* | 乘 | 求 a 乘以 b 的积 | a * b |
/ | 除 | 求 a 除以 b 的商 | a / b |
% | 取余 | 求 a 除以 b 的余数 | a % b |
算术运算符都是双目运算符,即连接两个操作数的运算符。优先级上,*、/、% 具有相同运算级别,并高于 +、-(+、- 具有相同级别)。例如:
int a = 4, b = 2, c = 3; int d = a * (b + c) % c;
这种运算规则与数学运算中的规则是相同的。首先计算赋值符号(=)右边配对的括号内的值,其次按从左向右的结合方向计算乘法,最后做求余运算,表达式的结果为 2, 然后把 2 赋值给 d。
例如:
①int x=2,y=1;
表达式 y/x 的结果是 0。
②float x=2.0f; int y=1;
表达式 y/x 的结果是 0.5。
在 ① 中整型变量 x 和 y 相除,其结果仍为整型数据 0;在 ② 中由于两个不同类型的数据进行运算,此时首先要进行类型转换,会把 int 型的 y 转换成与 x 一样的 float 型,然后相除,最终结果为 float 类型的数字 0.5。
【例1】编写一个程序,输出不同类型的两个数,执行相加、相减、相乘、相除和求余后输入结果。
public static void main(String[] args) { float f1 = 9 % 4;// 保存取余后浮点类型的结果 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("整数的算术运算"); // 整数的加、减、乘、除和取余 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浮点数的算术运算"); // 浮点数的加、减、乘、除和取余 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双精度数的算术运算"); // 双精度数的加、减、乘、除和取余 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字符的算术运算"); // 对字符的加法和减法 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'); }
保存文件并运行,输出的结果如下所示。
本示例中使用了 4 种类型来执行算术运算。其中,整数类型的结果最容易理解,浮点型和双精度型返回的结果都带有小数,字符型将会把字符转换为 ASCII 码再运算。
从输出结果中可以看到,整数之间的运算结果只保留整数部分,浮点型运算时保留 6 位小数部分,双精度运算时则保留 16 位小数部分。
注意:Java 语言算术运算符的优先级是先乘除后加减。例如在表达式“a-b*c”中,b 的左侧为减号,右侧为乘号,而乘号优先级高于减号,因此该表达式可以转换为“a-(b*c)”。
如果在一个表达式中的多个算术运算符的优先级别相同,例如“a-b+c”,此时将按照运算符的结合方向决定顺序。算术运算符的结合方向都是“从左至右”,即先左后右。因此 b 先与减号结合,执行“a-b”的运算,再执行加 c 的运算。
更多编程相关知识,请访问:编程教学!!
Atas ialah kandungan terperinci Apakah maksud % dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!