1、算术运算符(+ - * /(除号) %(取余))
/和%的区别:两个数据做除法,/取结果的商,%取结果的余数。
整数操作只能得到整数,要想得到小数,必须有浮点数参与运算。
int a = 10;
int b = 3;
System.out.println(a / b); // 输出结果3
System.out.println(a % b); // 输出结果1
1.1字符的“+”操作
值显得很重要char类型参与算术运算,使用的是计算机底层对应的十进制数值。ascll值显得很重要
需要我们记住三个字符对应的数值:
ascll 从小到大:‘0’——‘9’(48——57) 'A'——'Z'(65——90) ‘a’——‘z’(97——122)
// 可以通过使用字符与整数做算术运算,得出字符对应的数值是多少
char ch1 = 'a';
System.out.println(ch1 + 1); // 输出98,97 + 1 = 98
char ch2 = 'A';
System.out.println(ch2 + 1); // 输出66,65 + 1 = 66
char ch3 = '0';
System.out.println(ch3 + 1); // 输出49,48 + 1 = 49
1.2字符串的“+”操作
当“+”操作中出现字符串时,这个”+”是字符串连接符,而不是算术运算。
System.out.println("itheima"+ 666); // 输出:itheima666
在”+”操作中,如果出现了字符串,就是连接运算符,否则就是算术运算。当连续进行“+”操作时,从左到右逐个执行。
2、 赋值运算符(= += -= *= /=(除后赋值 ) %=(取余后赋值,a%=b,将a÷b的余数给a) )
注意:扩展的赋值运算符隐含了强制类型转换。
3、自增自减运算符(++ -- )
++和--中的注意事项
++和-- 既可以放在变量的后边,也可以放在变量的前边。
单独使用的时候, ++和-- 无论是放在变量的前边还是后边,结果是一样的。
参与操作的时候,如果放在变量的后边,先拿变量参与操作,后拿变量做++或者--。
参与操作的时候,如果放在变量的前边,先拿变量做++或者--,后拿变量参与操作。
最常见的用法:单独使用。
public class ifcontact {
public static void main(String[] args) {
int a = 10;
a++; // 单独使用
System.out.println("a:" + a); // a:11
int b = 10;
++b; // 单独使用
System.out.println("b:" + b); // b:11
int x = 10;
int y = x++; // 赋值运算,++在后边,所以是使用x原来的值赋值给y,x本身自增1
System.out.println("x:" + x + ", y:" + y); // x:11,y:10
int m = 10;
int n = ++m; // 赋值运算,++在前边,所以是使用m自增后的值赋值给n,m本身自增1
System.out.println("m:" + m + ", m:" + m); // m:11,m:11
}
}
4、关系运算符(< <= > = >= !=)
关系运算符有6种关系,分别为小于、小于等于、大于、等于、大于等于、不等于。其输出结果只有true和false,千万不要把“==”误写成“=”,"=="是判断是否相等的关系,"="是赋值。
public class ifcontact {
public static void main(String[] args) {
int a = 2;
int b = 33;
System.out.println(a == b); // false
System.out.println(a != b); // true
System.out.println(a > b); // false
System.out.println(a >= b); // false
System.out.println(a < b); // true
System.out.println(a <= b); // true
// 关系运算的结果肯定是boolean类型,所以也可以将运算结果赋值给boolean类型的变量
boolean flag = a > b;
System.out.println(flag); // 输出false
}
}
5、逻辑运算符(重点)
& 逻辑与 a&b,a和b都是true,结果为true,否则为false
同真为真 不同为假(有0则0)(逻辑与&,无论左边真假,右边都要执行。)
| 逻辑或 a|b,a和b都是false,结果为false,否则为true
不同为真(有1则1)(逻辑或|,无论左边真假,右边都要执行。)
0&0=0 0&1=0 1&0=0 1&1=1
0|0=0 0|1=1 1|0=1 1|1=1
^ 逻辑异或 a^b,a和b结果不同为true,相同为false
! 逻辑非 !a,结果和a的结果正好相反
&& 短路与 作用和&相同,但是有短路效果
(短路与&&,如果左边为真,右边执行;如果左边为假,右边不执行。)
|| 短路或 作用和\|相同,但是有短路效果
(短路或||,如果左边为假,右边执行;如果左边为真,右边不执行。)
6、三元运算符(关系表达式 ? 表达式1 : 表达式2;)
问号前面的位置是判断的条件,判断结果为boolean型,为true时调用表达式1,为false时调用表达式2。其逻辑为:如果条件表达式成立或者满足则执行表达式1,否则执行第二个。
int a = 10;
int b = 20;
int c = a > b ? a : b; // 判断 a>b 是否为真,如果为真取a的值,如果为假,取b的值
数据输入(通过 Scanner 类来获取用户的输入 )
导包
import java.util.Scanner;
创建Scanner对象。
Scanner sc = new Scanner(System.in);// 创建Scanner对象,sc表示变量名,其他均不可变
接收数据
int i = sc.nextInt(); // 表示将键盘录入的值作为int数返回。
例如
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
//创建对象
Scanner sc = new Scanner(System.in);
//接收数据
int x = sc.nextInt();
//输出数据
System.out.println("x:" + x);
}
}