1、算数运算符
+,-,*,/,%,++,—
public class A {
//+、-、*、/、%、++、--
public static void main(String[] args) {
int a=10;
int b=3;
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("----------------------------");
int a1=5,a2=10;
int c=a1++;//++在后面,c=a1,a1=a1+1
System.out.println(a1);//6
System.out.println(c);//5
int c2=++a2;//++在前面,a2=a2+1,c2=a2
System.out.println(a2);//11
System.out.println(c2);//11
//总结:++或--,表示+1或-1;++在后面表示先赋值再+1,++在前面表示先+1再赋值
}
}
注意:字符串参与加法操作
public class B {
//字符和字符串参与加法操作
public static void main(String[] args) {
int a=10;
char c='A';
String s="A";
//字符与字符串的区别:字符能转换成int,而字符串不能
System.out.println(c);//A
System.out.println((int)c);//65
// System.out.println((int)s);
//字符与数字相加时会把字符转换成int类型,然后按照算术运算符相加
//字符串与数字相加,会做连接操作
System.out.println(a+c);//75
System.out.println(a+s);//10A(字符串)
//数字转换成字符串时,只需要在数字后加“”
int b=100;
String s1=b+"";
System.out.println(s1);//100(是字符串了)
}
}
2、赋值运算符
基本的赋值运算符:=
扩展的赋值运算符:+=,-=,*=,/=,%= (+=: a+=20;相当于 a = (a 的数据类型)(a + 20))
public static void main(String[] args) {
// 把10赋值给int类型的变量a
int a = 10;
// += 把左边和右边的数据进行运算,最后赋值给左边。左边的只能是变量
a += 10;// 相当于a = a + 10
System.out.println("a:" + a);
System.out.println("----------------------");
short s = 10;
// s += 20; // 相当于 s = s + 20;
s = (short) (s + 20);
System.out.println("s:" + s);
}
3、关系运算符
public class A {
public static void main(String[] args) {
/**
* 关系运算符包含以下内容:
* ==,!=,>,>=,<,<=
* 关系运算符的结果都是 boolean 型,也就是要么是 true,要么是 false。
* 注意事项:
* 关系运算符“==”不能误写成“=”
*/
int a=100,b=200;
System.out.println("a==b:"+(a==b));//false
boolean flag=a!=b;
System.out.println(flag);//true
System.out.println(a>b);//false
System.out.println(a<b);//true
System.out.println(a>=b);//false
System.out.println(a<=b);//true
}
}
4、逻辑运算
&逻辑与:有 false 则 false。
|逻辑或:有 true 则 true。
^逻辑异或:相同为 false,不同为 true。
!逻辑非:非 false 则 true,非 true 则 false。
public class A {
/**
* &,|,^,!
* &&,||
*/
public static void main(String[] args) {
int a1=100,b1=100;
int a2=200,b2=300;
//|(逻辑或)和||(短路或)的区别:(& 和&& 一样)
// |逻辑或会判断每个表达式,然后得出结果
//||短路或,挨个去判断表达式,如果发现有个表达式为true,那么后面的表达式就不会判断,效率高
System.out.println("(a1==b1) | (a2==b2):"+((a1==b1) | (a2==b2)));
System.out.println("(a1==b1) || (a2==b2):"+((a1==b1) || (a2==b2)));
System.out.println(!(a1==b1));
System.out.println("(a1==b1) ^ (a2==b2):"+((a1==b1) ^ (a2==b2)));
}
}
注意:
A:&&和&的区别?
a:最终结果一样。
b:&&具有短路效果。左边是 false,右边不执行。
&是无论左边是 false 还是 true,右边都会执行
B:||和|的区别?
a:最终结果一样
b:||具有短路效果.左边是 true,右边不执行
|是无论左边是 false 还是 true,右边都会执行
5.三元运算符
public class A {
/**
* A:格式
* (关系表达式)?表达式 1:表达式 2;
* 如果条件为 true,运算后的结果是表达式 1;
* 如果条件为 false,运算后的结果是表达式 2;
*/
public static void main(String[] args) {
int a=(80>60)?1:0;
System.out.println(a);//1
int age=20;
String s=(age>18)?"成年":"未成年";
System.out.println(s);
System.out.println("-----------------------");
System.out.println("三个数中最大的");
int a1=10,b1=8,c1=20;
int d=(((a1>b1)?a1:b1)>c1)?((a1>b1)?a1:b1):c1;
System.out.println(d);//20
}
}
6.键盘录入
键盘录入数据的步骤:
A:导包(位置放到 class 定义的上面) import java.util.Scanner;
B:创建对象 Scanner sc = new Scanner(System.in);
C:接收数据 int x = sc.nextInt();
/**
* @author Lynn
* @create 2020-11-18-10:52
*/
//1.导入Scanner类
import java.util.Scanner;
public class A {
public static void main(String[] args) {
//2.创建Scanner对象
//System .in 表示键盘的输入信息
Scanner sc=new Scanner(System.in);
//3.每次回车后获取输入的信息
int num=sc.nextInt();
//4.输出键盘输入的信息
System.out.println("num:"+num);
}
}
import java.util.Scanner;
/**
* @author Lynn
* @create 2020-11-18-10:56
*/
public class B {
//键盘录入两个数据,并对这两个数据求和,输出其结果
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
//加入提示
System.out.println("输入第一个数:");
//获取第一个数
int num=sc.nextInt();
//加入提示
System.out.println("输入第二个数:");
//获取第二个数
int num2=sc.nextInt();
int num3=num+num2;
System.out.println("num3="+num3);
}
}