网站模板修改教程,两个字的广告公司名字,网站上线倒计时html5模板,长沙网站制作一、运算符是什么#xff1f;
其实就如字面意思一样啦~就像数学中的运算符一样:( #xff0c; - #xff0c; * #xff0c; / #xff0c; % ...)。
计算机的用途就如其名#xff1a;运算。而既然要运算…一、运算符是什么
其实就如字面意思一样啦~就像数学中的运算符一样:( - * / % ...)。
计算机的用途就如其名运算。而既然要运算肯定就需要运算符。
而在Java中也提供了非常多的运算符来操控变量而其中的运算符基本可以分为以下六种 1. 算术运算符 2. 比较运算符 3. 逻辑运算符 4. 位运算符 5. 位移运算符 6. 条件运算符三元运算符 二、算数运算符
① 四则运算符
算术运算符包括加法运算符、减法运算符-、乘法运算符*、除法运算符/、取余运算符%等用于进行基本的数学运算。
加法运算符用于将两个数相加。 例如int a 5 3; // a的值为8
减法运算符-用于将一个数减去另一个数。 例如int b 7 - 2; // b的值为5
乘法运算符*用于将两个数相乘。 例如int c 4 * 6; // c的值为24
除法运算符/用于将一个数除以另一个数。注意如果除法操作涉及整数结果将被截断为整数。 例如int d 10 / 3; // d的值为3
取模运算符%用于计算两个数的除法余数。 例如int e 10 % 3; // e的值为1 代码演示
import java.util.*;public class Main {public static void main(String[] args) {Scanner num new Scanner(System.in);int n num.nextInt();System.out.println(n5);System.out.println(n-5);System.out.println(n*5);System.out.println(n/5);System.out.println(n%5);}
} 由此我们便能看出( - * / % )的作用就是相加相减相乘相除取余是与数学中的用法一致的。 而对于这些算数操作符有以下注意事项 以上运算符都是二元运算符使用时必须有左右两个操作数。 int / int 结果还是 int 类型而且会向下取整。 int 型 2 / 3 得到的是 1 而非 1.5。(小数点后舍弃) 做除法和取模时右操作数不能为0。 % 不仅可以对整型取模也可以对double类型取模但是没有意义一般都是对整型取模的。 两侧操作数类型不一致时向类型大的提升。
② 增量运算符
而除了此类比较简单的算术操作符以外还有一些编译器中的语言如增量运算符。 其实很简单只是上述四则运算中的简化版本
import java.util.*;public class Main {public static void main(String[] args) {Scanner num new Scanner(System.in);int n num.nextInt();n 5;//n n 5System.out.println(n);n - 2;//n n - 2System.out.println(n);n * 3;//n n * 3System.out.println(n);n / 3;//n n / 3System.out.println(n);n % 2;//n n % 2System.out.println(n);}
} - * / % 都是直接改变操作变量运算结束后将结果赋值给左操作数。 注意事项 只有变量才能使用该运算符常量不能使用。
③ 自增/自减操作符
自增自减操作符分别是 -- 作用分别是使变量1和变量-1。
Java中的增量运算符有两种形式前缀形式和后缀形式。 前缀形式 递增操作符将操作数的值加1并返回加1后的值。 -- 递减操作符将操作数的值减1并返回减1后的值。 代码演示
public class Main {public static void main(String[] args) {int i 0;if(i 0)System.out.println(Yes);elseSystem.out.println(No);}
} 注意前置 代表将此变量 1 后直接使用该变量(否则则会打印Yes)。
public class Main {public static void main(String[] args) {int i 1;if(--i 0)System.out.println(Yes);elseSystem.out.println(No);}
} 注意前置 -- 代表将此变量 -1 后直接使用该变量(否则则会打印No)。 后缀形式 递增操作符将操作数的值加1并返回加1之前的值。 -- 递减操作符将操作数的值减1并返回减1之前的值。 代码演示
public class Main {public static void main(String[] args) {int i 0;if(i 0)System.out.println(Yes);elseSystem.out.println(No);}
} 注意后置 先使用未自增的变量而后再将变量 1(否则则会打印No)。
public class Main {public static void main(String[] args) {int i 1;if(i-- 0)System.out.println(Yes);elseSystem.out.println(No);}
} 注意后置 -- 先使用未自增的变量而后再将变量 -1(否则则会打印Yes)。
三、关系运算符
Java中的关系运算符包括以下几种 等于 不等于! 大于 小于 大于等于 小于等于 这些运算符用于比较两个操作数的关系并返回一个布尔值表示比较结果的真或假。比较操作符通常用于条件语句、循环语句等控制结构中用于确定程序的执行流程。 代码演示
public class Main {public static void main(String[] args) {int a 1;int b 2;System.out.println(a b);System.out.println(a ! b);System.out.println(a b);System.out.println(a b);System.out.println(a b);System.out.println(a b);}
} 注意当需要多次判断时不能连着写比如7 a 19 是不行的。
四、逻辑运算符
Java中的逻辑运算符有以下几种 与运算符当且仅当两个操作数都为true时结果为true否则结果为false。 或运算符||当且仅当两个操作数都为false时结果为false否则结果为true。 非运算符用于取反当操作shu数为true时结果为false当操作数为false时结果为true。
逻辑运算符通常用于条件判断或控制流程中可以用来组合多个条件或将条件取反。 代码演示
public class Main {public static void main(String[] args) {int a 1;int b 2;if(a 1 || b 3)System.out.println(Yes);}
} (这是因为两种条件中有一方为真所以就运行if语句并且打印Yes)
但如果将 || 改成 就能够发现什么都不会打印出来了因为 必须两个条件都符合。 需要注意的是逻辑运算符有 短路规则 短路原则在逻辑运算符( 和 || )中如果根据左侧操作数的值可以确定整个表达式的结果时右侧操作数将不会被执行。 代码演示
public class Main {public static void main(String[] args) {int a 10;int b 20;if(a 10 || false)System.out.println(Yes);}
} 我们知道false代表假如果操作到了false便不会输出而最后还是输出了Yes。
(如果是C/C语言环境下可以通过 -- 来进行演示但Java不可以因为Java语言拥有较强的严谨性而且 boolean 只有 true 与 false 并不是 0 与 非0 ) 而的作用是使 真变假 假变真 。 代码演示
public class Main {public static void main(String[] args) {int a 10;System.out.println(使用!前:);System.out.println(!(a 10));System.out.println(!(a ! 10));System.out.println(使用!后:);System.out.println((a 10));System.out.println((a ! 10));}
} 五、位运算符 Java中的位运算符包括以下几种 位与运算符对两个操作数的每个位执行逻辑与操作只有当两个位都为1时结果才为1否则为0。 位或运算符|对两个操作数的每个位执行逻辑或操作只要两个位中有一个为1时结果就为1否则为0。 位异或运算符^对两个操作数的每个位执行逻辑异或操作只有当两个位不相同时结果才为1否则为0。 位非运算符~对操作数的每个位执行逻辑非操作将1变为0将0变为1。
① 位与运算符 同为1才为1否则为0
public class Main {public static void main(String[] args) {int a -5;int b 7;System.out.println(ab);}
}
int型在32位机器上占四个字节那么高位补零让我们看一下-5和7的原码
a-10000000000000000000000000000101b-00000000000000000000000000000111
分别求出a和b的补码先对原码取反然后再对反码1。
a-1000000000000000000000000000010111111111111111111111111111111010//求反11111111111111111111111111111011//1补码
b-00000000000000000000000000000111//正数的补码与反码相同
//同为1才为1否则为0
得 ab为00000000000000000000000000000011//输出结果为3 ② 位或运算符| 有1就为1
接下来我们看|(或)操作符同样是a与b的补码来进行计算
11111111111111111111111111111011//a补码
00000000000000000000000000000111//b反码
//|(或)操作符有1就为1
a|b-11111111111111111111111111111111//(还得取反1变成原码才行)-10000000000000000000000000000000-10000000000000000000000000000001//输出-1 ③ 位异或运算符^ 不同为1否则为0
接下来我们看^异或操作符同样是用a与b的补码来进行计算
11111111111111111111111111111011//a补码
00000000000000000000000000000111//b反码
//^异或不同为1否则为0
a^b-11111111111111111111111111111100//(还得取反1变成原码才行)-10000000000000000000000000000011-10000000000000000000000000000100//输出-4 ④ 位非运算符~ 按位取反0变11变0
这个与前三种不太一样就是字面意思的取反效果我们换一个表达式来体现它的效果和作用。
public class Main {public static void main(String[] args) {System.out.println(~0);//00000000000000000000000000000000//取反//11111111111111111111111111111111(再取反1)//10000000000000000000000000000001(-1)}
} 注意如果两个数相同则异或的结果为0
六、移位运算 移位运算符有以下几种 左移运算符将操作数的所有位向左移动指定的位数左移n位相当于乘以2的n次方。 右移运算符将操作数的所有位向右移动指定的位数右移n位相当于除以2的n次方。 无符号右移运算符将操作数的所有位向右移动指定的位数并在左侧插入0无符号右移不考虑符号位即使是负数也将其当作正数处理。
① 左移操作符
左移操作符使二进制数向左移动1位那么最左边的数就被挤出去了而右边也是同理光说可能不太明白没关系我们看个图。 像这样就是一个为10的数字向左位移1位的样子了。 代码演示
public class Main {public static void main(String[] args) {int num 10;num num 1;System.out.println(num);}
} 有没有发现什么向左位移一次就让结果变成了2倍这是巧合吗让我们再试一次
public class Main {public static void main(String[] args) {int num 10;int i 0;for(i 0;i 10;i) {num num 1;System.out.println(num);}}
} 看来往左移动多少位数字就会乘以相应次数的2~
② 右移操作符 和左移操作符基本一样有一点不同的是左移操作符是向右补位没有正负之分而右移操作符是向左补位有正负之分于是右移操作符有两种形式。
逻辑右移左边用0补充右边丢弃。
算术右移左边用原来的符号位补充右边丢弃。
还需要注意的是位移操作符不能移动负数位 代码演示
public class Main {public static void main(String[] args) {int num 5120;int i 0;for(i 0;i 10;i) {num num 1;System.out.println(num);}}
} ③ 无符号右移运算符 最右侧不要了最左侧补0
public class Main {public static void main(String[] args) {int a 0xffffffff;System.out.printf(%x\n, a 1);// 运行结果(注意, 是按十六进制打印的)}
} 七、条件运算符
Java条件运算符是用于在条件表达式中进行判断和选择的特殊运算符只有一个
三目运算符 三目运算符用于根据条件的真假来选择两个不同的值。
语法条件表达式 ? 表达式1 : 表达式2
如果条件表达式为真则返回表达式1的值如果条件表达式为假则返回表达式2的值。 代码演示
public class Main {public static void main(String[] args) {int a 10;int b 20;int max a b? a :b;System.out.println(max);}
} 注意事项 表达式1和表达式2的结果要是同类型的除非能发生类型隐式类型转换。 表达式不能单独存在其产生的结果必须要被使用。
那么关于Java语言中运算符的相关知识就为大家讲解到这里啦作者能力有限如果有什么讲的不够清楚或者不够正确的地方还请大家多多指出那么我们下次再见啦~