Scanner类
使用Scanner类的步骤:
(1)导入Scanner类;
import java.util.Scanner
(2)创建Scanner 对象;
Scanner in = new Scanner(System.in);
(3)获取用户输入数据;
方法名称 | 说明 |
---|---|
String next() | 获得一个字符串 |
String nextLine() | 获得一个字符串 |
int nextInt() | 获得一个整数 |
double nextDouble() | 获得一个双精度浮点数 |
boolean hasNext() | 判断是否有输入语句,如果有输入语句,则返回true,负责返回false |
示例:
import java.util.Scanner;//导入Scanner类
public class ScoreManager {
public static void main(String[] args){
Scanner in = new Scanner(System.in); //定义Scanner变量
System.out.println("请输入学生姓名");
String name = in.nextLine();
System.out.println("请输入数学成绩");
int mathscore = in.nextInt();
System.out.println("请输入语文成绩");
int chinesescore = in.nextInt();
in.close();
System.out.println("学生姓名是:" + name);
System.out.println("学生数学成绩是:" + mathscore);
System.out.println("学生语文成绩是:" + chinesescore);
}
}
运算符
算数运算符
算数运算符包括 “+”、“-”、“*”、“/”、“%”、“++”、“--”。
运算符 | 含义 | 示例 | 结果 |
---|---|---|---|
+ | 加法运算符 | 2+3 | 5 |
- | 减法运算符 | 2-3 | -1 |
* | 乘法运算符 | 2*3 | 6 |
/ | 除法运算符 | 2/3 | 0 |
% | 求余运算符 | 2%3 | 2 |
++ | 自增运算符 | i=2,j=i++ | i=3,j=2 |
-- | 自减运算符 | i=2,j=i-- | i=1,j=2 |
++/--只能对变量进行运算
++/--在后,先赋值,再自增
++/--在前,先自增,再赋值
//1.单独使用:++或者--放在变量前面没有区别
int a = 10;
a++; // 1
--a; // 10
System.out.println(a); // 10
//2.混合使用:++或者--放在变量或者前面运算规则稍有不通过 ++ 在后 先赋值 再自增 ++ 在前 先自增再赋值
int a = 10;
int b = a++;
int c = ++a;
System.out.println(a); // 12
System.out.println(b); // 10
System.out.println(c); // 12
int x = 10;
int y = --x;
x = 9 y = 9
赋值运算符
赋值运算符“=”用来给变量赋值,复合赋值运算符主要包括“+=”、“-=”、“*=”、“/=”、“%=”。
推荐使用合赋值运算符,将"i=i+j"写成"i+=j"
a+=b => a = (a的类型)(a+b)
关系运算符
关系运算符用于比较两个变量或者常量的大小,并且返回布尔值true或者false来表示结果。
运算符 | 含义 | 示例 | 结果 |
---|---|---|---|
== | 等于 | 2==3 | false |
!= | 不等于 | 2!=3 | true |
> | 大于 | 2>3 | false |
< | 小于 | 2<3 | true |
>= | 大于等于 | 2>=3 | false |
<= | 小于等于 | 2<=3 | true |
逻辑运算符
逻辑运算符用于对两个布尔类型的值进行运算,并且返回一个布尔类型的值为结果。
运算符 | 含义 | 运算规则 |
---|---|---|
& | 逻辑与 | 两个操作数都是true,结果才是true,两个操作数有一个是false,结果为false。无论左边值是false还是true,右边表达式都会进行计算。 |
| | 逻辑或 | 两个操作数都是false,结果才是false,两个操作数有一个是true,结果为true。无论左边值是false还是true,右边表达式都会进行计算。 |
^ | 逻辑异或 | 两个操作数相同,结果为false;两个操作数不同,结果为true。 |
! | 逻辑非 | 操作数为true,结果为false;操作数为false,结果为true。 |
&& | 短路与 | 运行规则同“&”,不同在于如果左边值是false,右边表达式不会进行计算,相当于短路了。 |
|| | 短路或 | 运行规则同“|”,不同在于如果左边值是true,右边表达式不会进行计算,相当于短路了。 |
示例:
//键盘输入一个数字,判断是否是奇数。
import java.util.Scanner;
public class Test1{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个数字:");
int in = sc.nextInt();
boolean res = in % 2==1;
System.out.println(in + "是否为奇数?" + res);
}
}
//键盘输入一个年份,判断是否是闰年
import java.util.Scanner;
public class IsHeap {
public static void main(String[] args) {
// 能被4整除但不能被100整除,或者被400整除
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个年份");
int year = sc.nextInt();
// 能被4整除 year % 4 == 0
// 不能被100 整除 year % 100 != 0
// 能被400整除 year % 400 == 0
boolean a = year % 4 == 0;
boolean b = year % 100 != 0;
boolean c = year % 400 == 0;
boolean res = a && b || c;
System.out.println("你输入的" + year + "年是否是闰年呢?" +res);
}
}
位运算符
1. 原码
原码是一种最简单的机器数表示法,其中最高位表示符号位,其余位表示该数的二进
制的绝对值。
2. 反码
正数的反码与原码相同,而负数的反码是其原码除符号位外,按位取反的结果。
3. 补码
正数的补码等于其原码,而负数的补码等于其反码加1。
条件运算符
三目运算符:条件?表达式1 : 表达式2
(1)首先计算关系表达式的值,其结果为布尔值true 或false;
(2)如果关系表达式的值为true,则返回值1;
(3)如果关系表达式的值为false, 则返回值2;
//判断学生的成绩是否>=60,如果为true,就考试通过;如果为false,就成绩不合格。
import java.util.Scanner;
public class Test2{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个成绩:");
double score = sc.nextDouble();
String res = score >=60 ? "合格":"不合格";
System.out.println("输入的成绩" + res);
sc.close();
}
}
运算优先级
首先,括号优先级最高,逗号优先级最低。
单目运算符 > 算数运算符 > 外移运算符 > 关系运算符 > 逻辑运算符 > 三目运算符 > 赋值运算符