一 表达式
-
表达式由运算符和操作数组成
-
如:5 num1, num1+num2, sum=num1+num2
二 运算符
1. 算术运算符
-
算术运算符主要用于进行基本的算术运算, 如加法,减法,乘法,和除法等
算术运算符 | 名称 | 举例 |
---|---|---|
+ | 加法 | 1+2=3 |
- | 减法 | 2-1=1 |
* | 乘法 | 1*2=2 |
/ | 除法 | 2/1=2 |
% | 求余数 | 13%3=1 |
++ | 自增 | int n=2;n++ |
-- | 自减 | int n=2;--n |
package com.imooc.operator;
public class MathDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
int num1 = 10, num2 = 5;
int result; // 用于存放结果
// 加法
result = num1 + num2;
System.out.println(num1 + "+" + num2 + "=" + result);
// 字符串连接
System.out.println("" + num1 + num2); // 结果是105
// 减法
result = num1 - num2;
System.out.println(num1 + "-" + num2 + "=" + result);
// 乘法
result = num1 * num2;
System.out.println(num1 + "*" + num2 + "=" + result);
// 除法
result = num1 / num2;
System.out.println(num1 + "/" + num2 + "=" + result);
// 余数
result = num1 % num2;
System.out.println(num1 + "%" + num2 + "=" + result);
System.out.println("13.55/5=" + 13.55 / 5); // 结果是2.71
}
}
-
自增自减运算符
package com.imooc.operator;
public class MathDemo1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// x++ 先运算,再自增
int x = 4;
int y = (x++) + 5;
System.out.println("x=" + x + ",y=" + y); // 5 9
// ++x 先自增,再运算
int x1 = 4;
int y1 = (++x1) + 5;
System.out.println("x1=" + x1 + ",y1=" + y1); // 5 10
// x-- 先运算,再自减
int x2 = 4;
int y2 = (x2--) + 5;
System.out.println("x2=" + x2 + ",y2=" + y2); // 3 9
// --x 先自减, 再运算
int x3 = 4;
int y3 = (--x3) + 5;
System.out.println("x3=" + x3 + ",y3=" + y3); // 3 8
}
}
2.赋值运算符
-
格式: 变量=表达式;
-
例:int = 3; // 将3赋值给变量n
-
注意: 赋值运算符是从右往左运算!
-
复合赋值运算符
运算符 | 表达式 | 计算 | 结果(x=15) |
---|---|---|---|
+= | x+=5 | x=x+5 | 20 |
-= | x-=5 | x=x-5 | 10 |
*= | x*=5 | x=x*5 | 75 |
/= | x/=5 | x=x/5 | 4 |
%= | x%=5 | x=x%5 | 0 |
3.关系运算符
-
比较运算符用于判断两个数据的大小, 如大于
-
比较的结果是一个布尔值
运算符 | 名称 | 表达式 | 结果 |
---|---|---|---|
> | 大于 | 2>1 | true |
< | 小于 | 2<1 | false |
>= | 大于等于 | 2>=1 | true |
<= | 小于等于 | 2<=1 | false |
== | 等于 | 2==1 | false |
!= | 不等于 | 2!=1 | true |
-
例: 'A' > 'B' 结果是false, 比较的是两个字符的ascll值
-
5!=6 结果是true, 比较两个数值是否相等
-
true==false 结果位false, 两个布尔值不相等
-
float f=5.0f; long l=5; f==l; 结果是true , 浮点数与整数进行比较, 只要值相等就返回true
4.条件结构
-
简单if语句的格式:
// 简单的if条件结构
if(条件){
<语句块>
}
// 简单的例子
package com.imooc.operator;
public class ConditionDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 例:商场打折,如果两件商品的价格大于100则减20,并把原价和折后价格分别输出。
// 定义两个变量,分别存放两件商品的价格
double price1, price2;
price1 = 80;
price2 = 50;
// 计算两件商品的总价
double result = price1 + price2;
// 进行判断,输出原件
System.out.println("原件为: " + result);
if (result > 100) {
result -= 20;
}
System.out.println("打折后的价格: " + result);
}
}
-
if-else语句的形式
if(条件){
<语句块>
}else{
<语句块>
}
// 判断一个整数是奇数还是偶数
package com.imooc.operator;
import java.util.Scanner;
public class ConditionDemo2 {
public static void main(String[] args) {
// 例: 判断一个整数是奇数还是偶数, 并将结果输出
// 定义一个变量存放数据
// 从键盘接收数据
System.out.println("请输入一个整数: ");
Scanner sc = new Scanner(System.in); // 键盘输入
int num = sc.nextInt(); // 定义变量接收
if (num % 2 == 0) {
System.out.println(num + "这个是一个偶数");
} else {
System.out.println(num + "这是一个奇数");
}
}
}
5.逻辑运算符
名称 | 运算符 | 表达式 |
---|---|---|
与 | &&或& | expression1&&expression2 |
或 | ||或| | expression1||expression2 |
非 | ! | !expression |
// 小例子
package com.imooc.operator;
import java.util.Scanner;
public class TestDemo {
public static void main(String[] args) {
// 问题: 升学考试,java,python,c语言三门总成绩大于等于230,
// 并且java成绩大于等于60, 才能升学
// 三门总成绩大于等于230, 表示为sum>=230
// java成绩大于等于60, 表示为ja>=60
System.out.println("请输入java成绩: ");
System.out.println("请输入python成绩: ");
System.out.println("请输入c语言成绩: ");
Scanner sc = new Scanner(System.in);
double ja = sc.nextDouble();
double py = sc.nextDouble();
double c = sc.nextDouble(); // 接收键盘输入
double sum = ja + py + c; // 成绩总和
if ((sum >= 230) & (ja >= 60)) {
System.out.println("升学!!!");
} else {
System.out.println("留级!!!");
}
}
}
-
& 逻辑'与'运算符(两边必须都为true, 结果才是true)
int n = 3;
boolean b = (3>7)&((n++)<2); // 问 b=?, n=?
System.out.println("b="+b+",n="+n);
// b=false, n=4 n这里是先运算,再自增
-
&& 运算符(短路运算符)
int n = 3;
boolean b = (3>7)&&((n++)<2); // 问 b=?, n=?
System.out.println("b="+b+",n="+n);
// b=false, n=3
// && 运算符又叫短路运算符, 如果第一个表达式的值就能决定表达式最后的结果,
// 运算符右边的表达式就不在计算了
-
& 和 && 的区别
-
在 Java 中,& 和 && 都是逻辑运算符,但是它们之间有一些区别。
& 是按位与运算符,它对两个操作数的每一位执行逻辑 AND 操作。例如,假设 a = 6 (二进制表示为 0110) 和 b = 3 (二进制表示为 0011),那么 a & b 的结果为 2 (二进制表示为 0010)。此外,如果使用 & 运算符,无论第一个操作数的值是什么,都会对第二个操作数进行求值。
&& 是逻辑与运算符,它只在第一个操作数为真时才对第二个操作数进行求值。例如,如果 a > 5 && b < 10,只有在 a 大于 5 时才会对 b 进行求值。这个特性被称为“短路求值”,可以提高程序的效率和性能。
因此,可以总结出以下区别:
-
& 是按位与运算符,&& 是逻辑与运算符。
-
& 对两个操作数的每一位执行逻辑 AND 操作,而 && 只在第一个操作数为真时才对第二个操作数进行求值。
-
使用 & 运算符,无论第一个操作数的值是什么,都会对第二个操作数进行求值,而使用 && 运算符可以避免不必要的求值,提高程序的效率和性能。
-
-
-
| 逻辑‘或' 运算符(有一个结果为真就, 结果就是true)
int n = 3;
boolean b = (3<7)|((n++)<2); // 问 b=?, n=?
System.out.println("b="+b+",n="+n);
// b=true, n=4 n这里是先运算,再自增
-
|| 逻辑运算符(短路运算符)
int n = 3;
boolean b = (3<7)||((n++)<2); // 问 b=?, n=?
System.out.println("b="+b+",n="+n);
// b=true, n=4 n这里是先运算,再自增
// || 运算符又叫短路运算符, 如果第一个表达式的值为真,
// 运算符右边的表达式就不在计算了, 直接是true
-
| 和 || 的区别
-
在Java中,|和||都是逻辑运算符,但是它们有不同的行为。
|是按位或运算符,用于对两个操作数的每个位执行逻辑或运算。即使左侧操作数的结果为true,右侧操作数也会被计算。
例如,如果a = 5(二进制表示为0101)和b = 3(二进制表示为0011),则a | b将得到7(二进制表示为0111)。
||是逻辑或运算符,用于将两个布尔表达式进行逻辑或运算。如果左侧操作数的结果为true,右侧操作数将不会被计算。这是一种短路逻辑运算符。
例如,如果a = 5和b = 3,则(a < b) || (a == 5)将返回true,因为第二个操作数的结果为true,不需要计算第一个操作数。
因此,|和||在行为上有所不同。如果你想对两个数进行按位或运算,应该使用|;
如果你想对两个布尔表达式进行逻辑或运算,并且只有在左侧操作数的结果为false时才需要计算右侧操作数,应该使用||。
-
-
逻辑 '非' 运算符
-
! 就是取反
package com.imooc.operator;
import java.util.Scanner;
public class LogicDemo {
public static void main(String[] args) {
// 键盘输入
System.out.println("请输入一个整数: ");
Scanner scr = new Scanner(System.in);
int num = scr.nextInt();
if (!(num % 3 == 0)) {
System.out.println(num + "不能被3整除");
} else {
System.out.println(num + "能被3整除");
}
}
}
三 三目运算符
-
语法:
-
布尔表达式? 表达式1:表达式2
-
当布尔表达式的值为true, 则返回表达式1的值, 否则返回表达式2的值
max=a>b?a:b; //
System.out.println("最大值是: "+max); // 返回a的值
boolean b1=a>b?(3<6|3<1):(true==false);
System.out.println("b1="+b1); // 结果:b1=true
四 运算符的优先级
-
优先级由上到下
运算符 | 描述 |
---|---|
() | 括号 |
!,++,-- | 逻辑非, 自增,自减 |
*,/,% | 乘法,除法,取余数 |
+,- | 加法,减法 |
<,<=,>,>= | 小于,小于等于,大于,大于等于 |
==,!= | 等于,不等于 |
&& | 逻辑与 |
|| | 逻辑或 |
=,+=,*=,/=,%=,-= | 赋值运算符,复合赋值运算符 |
-
总和案例
package com.imooc.operator;
import java.util.Scanner;
public class LeapYearDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 闰年的判断规则: 能被4整除但不能被100整除, 或者能被400整除
System.out.println("请输入年份: ");
Scanner sc = new Scanner(System.in);
int year = sc.nextInt(); // 接收键盘输入
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
System.out.println(year + "年是闰年");
// 能被4整除但不能被100整除, 或者能被400整除 就是闰年
} else {
System.out.println(year + "年不是闰年");
}
}
}
标签:操作数,java,int,System,运算符,println,out
From: https://www.cnblogs.com/jupeng/p/17228632.html