JavaSE—— 运算符、键盘录入、选择语句
程序员文章站
2024-03-24 16:18:28
...
逻辑运算符的基本用法
逻辑运算符:
&(并且) , |(或者) , !(非) , ^(异或) , &&(短路与) , ||(短路或)
- 逻辑运算符一般用于连接boolean类型的表达式或者值。
在Java中我们要表示一个数大于n并且小于m ,不可以写成n<x<m,应该写成 x>n & x<m 。 - 表达式:就是用运算符把常量或者变量连接起来的符合java语法的式子。
算术表达式:a + b (运算符)
关系表达式:a == b (逻辑等于符) - &&和& ||和|
1. 最终结果一样。
2. &&具有短路效果。左边是false,右边不执行。||同样具有短路效果,左边是true,右边不执行。
3. 开发中常用(效率高)
&&, ||, !
三元运算符的基本用法
三元(三目)运算符的格式
(逻辑关系表达式) ? 表达式1 : 表达式2;
例:
int a=(10>20)?30:50; //定义a等于(10大于20吗)?大于输出30:否则输出50;
a=50 //输出 a=50
-
三元运算符的执行流程
计算关系表达式的值,
如果为true, 运算后的结果是表达式1;
如果为false,运算后的结果是表达式2;可以做一个比较大小的简单例子:
键盘录入数据
如何实现键盘录入
- 导包
格式:
import java.util.Scanner;
位置:
在class上面。 - 创建键盘录入对象
格式:
Scanner sc = new Scanner(System.in); - 通过对象获取数据
格式:
int x = sc.nextInt();
eg:键盘录入2个整数,并输出到控制台。
import java.util.Scanner;
class scanner
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
System.out.println("请输入第一个整数");
int a=sc.nextInt();
System.out.println("请输入第二个整数");
int b=sc.nextInt();
System.out.println("您输入的第一个整数是"+a);
System.out.println("您输入的第二个整数是"+b);
}
}
流程控制语句
- 流程控制语句的分类:
顺序结构 (即最基本的流程控制,按照代码的先后顺序,依次执行)
选择结构 (if语句、switch语句)
循环结构 (for循环、while循环 )
if语句
- if语句的格式1:
if (比较表达式或者是boolean类型的值) {
语句体;
}
执行流程:
先计算比较表达式的值,看其返回值是true还是false。
如果是true,就执行语句体;
如果是false,就不执行语句体;
eg: 判断两个数据是否相等
- if语句的格式2
if(比较表达式) {
语句体1;
}else {
语句体2;
}- 注意事项:else后面是没有比较表达式的,只有if后面有。
执行流程:
首先计算比较表达式的值,看其返回值是true还是false。
如果是true,就执行语句体1;
如果是false,就执行语句体2;
eg: 判断一个数是奇数还是偶数,并输出是奇数还是偶数
-
if语句的格式3:
if(比较表达式1) {
语句体1;
}else if(比较表达式2) {
语句体2;
}else if(比较表达式3) {
语句体3;
}
…
else {
语句体n+1;
}
执行流程:
首先计算比较表达式1看其返回值是true还是false,
如果是true,就执行语句体1,if语句结束。
如果是false,接着计算比较表达式2看其返回值是true还是false,如果是true,就执行语句体2,if语句结束。
如果是false,接着计算比较表达式3看其返回值是true还是false,
…如果都是false,就执行语句体n+1。
- 注意事项: 当只要有一个条件满足时,if语句结束。else是可以省略,但是不建议省略。
eg: 键盘录入x的值,计算出y的并输出。
x>=3 y = 2x + 1;
-1<=x<3 y = 2x;
x<-1 y = 2x – 1;
import java.util.Scanner;
class if3 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入X的整数值");
int x=sc.nextInt();
int y=0;
if(x>=3){
y=2*x+1;
}else if(x>=-1&&x<3){
y=2*x;
}else if(x<-1){
y=2*x-1;
}
System.out.println("y="+y);
}
}
switch语句
- switch语句的格式
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
case 值3:
语句体3;
break;
…
default:
语句体n+1;
break;
} - switch语句的格式解释
- switch表示这是switch语句
表达式的取值:byte、short、int、char、String、枚举 - case后面跟的是要和表达式进行比较的值
- 语句体部分可以是一条或多条语句
- break表示中断,结束的意思,可以结束switch语句
- default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似
- switch表示这是switch语句
执行流程
先计算表达式的值
然后和case后面的匹配,如果匹配成功就执行对应的语句,遇到break就会结束,否则执行default控制的语句
eg: 键盘录入月份,输出对应的季节
import java.util.Scanner;
class switch1 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入12个月份");
int month=sc.nextInt();
switch(month){
case 3: //没有break会出现穿透现象,匹配到3后一直执行3下的语句到下一个break
case 4:
case 5:
System.out.println("春季");
break;
case 6:
case 7:
case 8:
System.out.println("夏季");
break;
case 9:
case 10:
case 11:
System.out.println("秋季");
break;
case 12:
case 1:
case 2:
System.out.println("冬季");
break;
default:
System.out.println("你输入的不是12个月");
break;
}
}
}