知识梳理:(& 与 、 && 短路与、 | 或 、 || 短路、 ^ 异或、 ! 非)
//&与:前后两侧接boolean值,两侧都为true,结果才为true
//&&短路与:前后两侧接boolean值,两侧都为true,结果才为true
//&与:判断前者为false后,还会判断后者
//&&短路与:判断前者为false后,不会判断后者,效率更高
//|或:前后两侧接boolean值,两侧有一侧为true,结果就为true
//||短路或:前后两侧接boolean值,两侧有一侧为true,结果就为true
//|或:判断前者为true后,还会判断后者
//||短路或:判断前者为true后,不会判断后者,效率更高
//^异或:前后两侧接boolean值,两侧不同为true,相同为false
//!非:置反
注意:
1.逻辑运算符运行结果都是boolean类型
2.&、&&、|、||、^ 两侧都是boolean类型数据
import java.util.Scanner;
public class Test07{
/*
练习题:在dos窗口输入一个数字,判断是否在50~100的区间内
*/
public static void main(String[] args){
//1.创建Scanner的对象
Scanner scan = new Scanner(System.in);
//2.输入数据
System.out.println("请输入一个数字:");
int num = scan.nextInt();
//3.判断是否在50~100的区间内
boolean bool = num>50 && num<100;
System.out.println("该数字是否在50~100的区间内:" + bool);
}
}
2.知识点:字符串拼接符
符号:+
注意:
+两侧都是数值,此符号为算数运算符
+两侧有一侧是字符串 或 两侧都是字符串,此符号为字符串拼接符
public class Test05{
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"
}
}
知识点:Scanner类
理解:Java给我们提供的专门在控制台输入数据到程序里的类
//导包
import java.util.Scanner;
public class Test06{
/**
知识点:Scanner类
理解:Java给我们提供的专门在控制台输入数据到程序里的类
//创建Scanner类的对象
Scanner scan = new Scanner(System.in);
System.out.println("请输入int值:");
int i = scan.nextInt();
System.out.println("请输入double值:");
double d = scan.nextDouble();
System.out.println("请输入字符串:");
String str = scan.next();
System.out.println(i);
System.out.println(d);
System.out.println(str);
需求:从控制台输入两个int值,求和
Scanner scan = new Scanner(System.in);
System.out.println("请输入第一个数字:");
int a = scan.nextInt();
System.out.println("请输入第二个数字:");
int b = scan.nextInt();
int result = a+b;
System.out.println("两个数字之和为:" + result);
小结:
1.创建Scanner类的对象 - Scanner scan = new Scanner(System.in);
2.导包 - import java.util.Scanner;
3.调用功能
int i = scan.nextInt(); 输入int值并赋值给变量i
double d = scan.nextDouble();输入double值并赋值给变量d
String str = scan.next();输入字符串值并赋值给变量str
*/
public static void main(String[] args){
}
}
知识点:表达式
5+6 算数表达式
5>6 关系表达式
知识点:三目运算符/三元运算符
语法结构:
变量 = (表达式)?值1:值2;
理解:表达式的结构必须是boolean类型
true - 将值1赋值给变量
false- 将值2赋值给变量
import java.util.Scanner;
public class Test08{
/**
知识点:表达式
5+6 算数表达式
5>6 关系表达式
知识点:三目运算符/三元运算符
语法结构:
变量 = (表达式)?值1:值2;
理解:表达式的结构必须是boolean类型
true - 将值1赋值给变量
false- 将值2赋值给变量
做实验:
int num = (false)?10:20;
System.out.println(num);
需求1:在控制台输入两个数字,输出最大值
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:在控制台输入三个数字,输出最大值
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)?sa:b;
max = (max>c)?max:c;
System.out.println("最大值为:" + max);
需求3:在控制台输入三个数字,从小到大输出
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);
经典面试题一:
System.out.println((false)?10.9:9);//9.0
经典面试题二:
char x = 'x';//Unicode - 120
int i = 10;
System.out.println(false?i:x);//120
经典面试题三:
char x = 'x';//Unicode - 120
System.out.println(false?100:x);//x
System.out.println(false?100000:x);//120
扩展 - 常量:在程序执行过程中不可发生改变的量
ps:数字字面量就是常量的一种
三目运算符返回值规则:
1.值1和值2都是常量的情况下,按照取值范围大的类型返回数据
2.值1和值2都是变量的情况下,按照取值范围大的类型返回数据
3.值1和值2一个是常量一个是变量的情况,判断常量是否在变量所属类型的取值范围里
在 - 按照变量类型返回数据
不在 - 按照常量类型返回数据
*/
public static void main(String[] args){
}
}