03-运算符和类型转换
- 算术运算符:
- +,-,*,/,%,++,–
public class Demo1{
public static void main(String[] args){
//声明三个整数型变量
int num1 = 10, num2 = 20, num3;
//num3 = num1+num2;
//num3 = num1-num2;
//num3 = num1*num2;
//num3 = num1/num2;
//num3 = num1%num2;
//num3 = num1++; //先赋值,再在自身加1
num3 = ++num1; //先在自身加1,再赋值
num3 = num1--; //先赋值,再在自身-1
num3 = ++num1; //先在自身-1,再赋值
System.out.println(num3);
System.out.println(num1)
}
}
- 赋值运算符:
- =,+=,-=,*=,/=
public class Demo02{
public static void main(String [] args){
int num1 = 1,num2 = 2; // =: 赋值 把等号右边的赋给等号左边
num2+=num1; //相当于:num2 = num2+num1;
num2-=num1; //num2 = num2-num1
num2*=num1; //num2 = num2*num1
num2/=num1; //num2 = num2/num1
System.out.println(num2);
}
}
- 关系运算符:
- 大于,>=,<,<=,==,!= – 结果只能是true或false
public class Demo03{
public static void main(String [] args){
//声明变量
int num1 = 1,num2 = 2;
System.out.println(num1<num2);
System.out.println(num1<=num2);
System.out.println(num1>num2);
System.out.println(num1>=num2);
System.out.println(num1==num2);
System.out.println(num1!=num2);
}
}
-
逻辑运算符: (结果true或false)
-
&&,||,!,&,|
&& : 短路与(并且,and) 只有两个条件结果都是true,结果才为true
|| : 短路或 (或者 or) 两个条件,只要一方是条件为true,结果为true
& : 与 (两个作用的运算符)
1.当两边都是关系运算符时,进行逻辑运算: 两边都为true ,结果为true
2.当两边都是数值的时候,进行位运算 : 两边都是1的时候,结果为1
| : 或 (两个作用的运算符)
1.当两边都是关系运算符时,进行逻辑运算: 两边一方为true,结果为true
2.当两边都是数值的时候,进行位运算: 两边只要一方是1, 结果为1
public class Demo04{
public static void main(String [] args){
//声明变量
int num1 = 10,num2 = 20,num3 = 30;
System.out.println( num1 < num2 && num2 >num1); //true
System.out.println( num1 > num2 && num2 >num1); //false
System.out.println("----------------------------------");
System.out.println( num1 > num2 || num2 >num1);
System.out.println( num1 > num2 || num2 >num1);
System.out.println("----------------------------------");
boolean flag = true;
System.out.println("flag = "+(!flag)); //对结果取反
System.out.println("----------------------------------");
System.out.println( num1 > num2 & num2 >num1);
System.out.println( num1 < num2 & num2 >num1);
System.out.println("----------------------------------");
System.out.println( "8&4 " +(8&4));
System.out.println( "8|4 "+(8|4));
}
}
-
位运算符:
-
&,|,^,~,<<,>>
相同的输出0,不同的输出1
public class Demo05{
public static void main (String [] args){
int a = 8,b = 20,c;
c = a^b;
System.out.println(c);
/*
01010 10的二进制
10100 20的二进制
11110
10100
01000
11100
*/
System.out.println( ~ -5); //取反-1 (-5 转正5 -1)(5取反是-6)
System.out.println(8<<2); //8乘以2乘以2乘以2
System.out.println(8>>5); //8/2/2
//运算符左边的是要计算的数值,右边是次数
}
}
- 三元(三目)运算符
public class Demo06{
public static void main(String [] args){
boolean a = false;
int b = 1,c = 2;
System.out.println(a?"你赢了":"哎呀,真笨"); //如果a是true输出第一值,如果a是false,输出第二个值
}
}
- 类型转换:
- 自动类型转换: 容量小的转容量大的
- 强制类型转换: 容量大的转容量小的
- 数据类型容量大小比较: byte < short || char < int < long < float < double
public class DemoType01{
public static void main(String[] args){
double score = 81.29;
int cha = 2;
int s = (int) score+cha; //强制转换
System.out.println(s);
}
}
- 键盘输入: Scanner类
import java.util.Scanner;
public class ScannerDemo{
public static void main(String [] args){
//创建Scanner对象
Scanner input = new Scanner(System.in);
System.out.println("请输入你的名字:");
String name = input.next(); //String类型的接受方式
System.out.println("请输入年龄:");
int age = input.nextInt(); //int类型的接受方式
System.out.println("请输入性别:");
char gender = input.next().charAt(0); //char类型的接收方式
System.out.println("请输入身高");
double w = input.nextDouble();
System.out.println("我的名字是:"+name+"年龄是"+age+"性别:"+gender+"身高:"+w);
}
}