六大金刚运算符—三元运算符及字符串拼接符
一、三目运算符/三元运算符
1.语法规则
变量 = (表达式)?值1:值2;
2.理解
表达式的结果必须是boolean
true - 将值1赋值给变量
false- 将值2赋值给变量
3.实验
public class 文件名{
public static void main(String[] args){
int num = (false)?10:20;
System.out.println(num);//20
}
}
4.基本使用
1.输入两个int数字,比较大小,输出最大值
import java.util.Scanner;
public class 文件名{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
System.out.println("请输入第一个数字:");
int a = scan.nextInt();
System.out.println("请输入第二个数字:");
int b = scan.nextInt();
int max = (a>b)?a:b;
System.out.println("最大值为:" + max);
}
}
2.输入两个int数字,比较大小,输出最小值
import java.util.Scanner;
public class 文件名{
Scanner scan = new Scanner(System.in);
System.out.println("请输入第一个数字:");
int a = scan.nextInt();
System.out.println("请输入第二个数字:");
int b = scan.nextInt();
int min = (a<b)?a:b;
System.out.println("最小值为:" + min);
}
}
3.输入三个int数字,比较大小,从小到大输出
import java.util.Scanner;
public class 文件名{
public static void main (String[] args){
Scanner scan = new Scanner(System.in);
System.out.println("请输入第一个数字:");
int a = scan.nextInt();
System.out.println("请输入第二个数字:");
int b = scan.nextInt();
System.out.println("请输入第三个数字:");
int c = scan.nextInt();
//最大值
int max = (a>b)?a:b;
max = (max>c)?max:c;
//最小值
int min = (a<b)?a:b;
min = (min<c)?min:c;
//中间值
int mid = a+b+c-max-min;
System.out.println(min + "<" + mid + "<" + max);
}
}
5.深入使用
经典面试题一
public class 文件名{
public static void main(String[] args){
int a = 5;
System.out.println( (a<5)?10.9:9 );//9.0 - 值1和值2都是常量,按照取值范围大的类型返回数据
}
}
经典面试题二
public class 文件名{
public static void main(String[] args){
char x = 'x';//ASCII - 120
int i = 10;
System.out.println(false?i:x);//120 - 值1和值2都是变量,按照取值范围大的类型返回数据
}
}
经典面试题三
public class 文件名{
public static void main(String[] args){
char x = 'x';//ASCII - 120 0~65535
System.out.println(false?100:x);//x 100未超出则打印x
System.out.println(false?65536:x);//120 65536超出打印ASCII值
}
}
6.扩展
1.表达式
5+6 – 算数表达式
5>6 – 关系表达式
true&&true – 逻辑表达式
2.返回值规则
1.值1和值2都是常量,按照取值范围大的类型返回数据
2.值1和值2都是变量,按照取值范围大的类型返回数据
3.值1和值2有一个是常量一个是变量的情况
4.判断常量的值是否在变量所属类型取值范围内?
在 - 按照变量类型返回数据
不在 - 按照常量类型返回数据
3.小知识
不可变的量,数字字面量就是常量的一种
二、字符串拼接符
符号:+
注意:
+两侧都是数值,符号为算术运算符
+有一侧或两侧是字符串,符号为字符串拼接符
public class Test06{
public static void main(String[] args){
System.out.println(1 + 2 + "abc" + "def" + 1 + 2);
// 3 + "abc" + "def" + 1 + 2
// "3abc" + "def" + 1 + 2
// "3abcdef" + 1 + 2
// "3abcdef1" + 2
// "3abcdef12"
}
}