内容概要
- 键盘录入
- 运算符
1. 键盘录入
键盘录入步骤:
1.导包
import java.util.Scanner;
2.创建键盘录入对象
Scanner scanner = new Scanner(System.in);
3.定义变量接收键盘录入
int num = scanner.nextInt();
键盘录入案例:
public class Scanner_Somnus {
public static void main(String[] args) {
// 创建键盘录入对象
Scanner scanner = new Scanner(System.in);
// 设置键盘录入提示
System.out.println("请输入一个int整数:");
// 定义变量进行键盘录入值得接收
int num = scanner.nextInt();
// 输出键盘录入的结果值
System.out.println("键盘录入的数据是:" + num);
}
}
2. 运算符
运算符:
用于连接变量和常量的符号.
表达式:
用运算符连接常量或者变量的符合Java语法的式子.不同的运算符连接的式子是不同的表达式.
运算符分类:
算术运算符
赋值运算符
关系运算符
逻辑运算符
三元运算符
算数运算符: +,-,*,/,%,++,–
/:
整数相除,结果是整数,当有浮点数参与运算时,结果是浮点型.
%:
A.左边的绝对值小于右边时,结果是左边;
B.左边的绝对值等于右边或者是右边的倍数时,结果是0;
C.左边的绝对值大于右边时,结果是余数;
D.%2的结果是1或者0,因此可以作为切换条件.
+:
三个作用:加法运算符、数值的正号、字符串的连接作用.
A:作为字符串连接作用时:
a:遵循运算的规则,表达式从左向右计算,只有字符串后的+是拼接,字符串前的是加法作用;
b:当有单个字符参与时,字符串前面的单个字符时参加加法运算,用的是字符的存储值(ASCII值);当字符串后面的单个字符参与时,使用的是字符本身进行字符串的拼接操作.
常用字符的ASCII码:’A’->65 ‘a’->97 ‘0’->48
++和–:
A:当单独使用时,符号在前面和后面的效果相同 .
B:参与运算时:(赋值运算符等)
a:符号在前面时,是先取变量的值进行运算,然后变量再自增/减
b:符号在后面时,是先进变量的自增/自减,然后再参与运算.
C:在流程控制语句和作为方法的参数及输出语句的参数时:
a:在for语句中时,和单独使用时的效果相同;
b:在while,do…while,switch,输出语句参数,和方法的参数时,和参与运算时效果相同.
赋值运算符:
基本赋值运算符:=
注意事项:
A:符号本身是整体,中间不能加空格隔开使用;
B:=+和+=符号是不同含义,前者的+代表的是正号的作用; C:除=外,其他符号赋值时,隐含类型强制转换.
关系运算符: ==,!=,<,<=,>,>=
注意事项:
A:关系运算符连接的表达式的结果是boolean类型;
B:符号本身是整体,中间不能加空格隔开.
逻辑运算符: &,|,^,!,&&,||
开发中一般使用&&和||,其短路效果可以提高效率,一般用来连接关系表达式,结果是boolean类型.
&:
逻辑与:两边表达方式为true,结果为true,否则为false.
|:
逻辑或:两边表达式有一个为true,结果为true,否则为false.
^:
逻辑异或:两边表达式结果不同,结果为true,否则为false.
!:
逻辑非:单个!时,结果和表达式的结果相反,偶数个!符号时,表达式结果不变.
&&和&:
A:两者连接的整个表达式的结果相同;
B:&&具有短路效果,当左边为false时,无论右边的值是不是true,整个结果是false(右边的表达式不执行);
C:&没有短路效果,无论左边的结果如何,右边的表达式都会执行.
||和|:
A:两者连接的整个表达式的结果相同;
B:||具有短路效果,当左边为true时,无论右边的值是不是false,整个结果是true(右边的表达式不执行);
C:|没有短路效果,无论左边的结果如何,右边的表达式都会执行.
三元运算符:
格式:(关系表达式)?表达式1:表达式2; 表达式1和2可以使常量.
执行步骤:
A:先判断关系表达式的结果;
B:如果表达式的结果是true,整个表达式的结果是表达式1的值,否则是表达式2的值.
作用:一般用于比较大小.
运算符案例:
public class Operator_Somnus {
public static void main(String[] args) {
/*
* 算术运算符
*/
int a = 3;
int b = 4;
System.out.println(a + b); // 7
System.out.println(a - b); // -1
System.out.println(a * b); // 12
// /除法
System.out.println(a / b); // 0
System.out.println(a / 4.0); // 0.75
// %取余(模运算)
// 当左边的绝对值大于右边时,结果是余数
System.out.println(4 % 3); // 1
System.out.println(-4 % 3); // -1
// 当左边的绝对值等于右边或者是右边的倍数时,结果是0
System.out.println(6 % 3); // 0
System.out.println(-6 % 3); // 0
// 当左边的绝对值小于右边时,结果是左边
System.out.println(3 % 4); // 3
System.out.println(-3 % 4); // -3
// 表达式的结果只和左边有关,和左边相同,与右边无关
System.out.println(-4 % -3); // -1
System.out.println(4 % -3); // 1
// +符号
// 加法运算
System.out.println(3 + 5); // 8
// 正号
System.out.println(+5); // 5
// 字符串连接
System.out.println("hello" + 23); // hello23
System.out.println(2 + 3 + "hello" + 3 + 2); // 5hello32
System.out.println(2 + 'A' + "hello" + 'A' + 2); // 67helloA2
// ++和--
// 单独使用时:
int x = 8;
int y = 9;
x++;
++y;
System.out.println("x:" + x + " y:" + y); // x:9 y:10
// 参与运算时:
int z = x++;
System.out.println("x:" + x + "z:" + z); // x:10 z:9
int w = ++x;
System.out.println("x:" + x + "w:" + w); // x:11 z:11
// 在while语句中时
int q = 3;
while ((++q) > 3) {
System.out.println(q); // 4
break;
}
// 在for语句中
for (int i = 1; i < 3; i++) {
System.out.println(i); // 1,2
}
// 在输出语句中
int r = 4;
System.out.println(r++); // 4
System.out.println(++r); // 6
/*
* 赋值运算符
*/
int t = 3;
System.out.println(t = 8); // 8
System.out.println(t += 3); // 11
System.out.println(t -= 3); // 8
System.out.println(t /= 4); // 2
System.out.println(t %= 3); // 2
//强制类型转换
byte i = 4;
i += 4; // 编译能通过,等价于 i = (byte)(i + 4)
System.out.println(i); // 8
/*
* 关系运算符
*/
System.out.println((3 == 4)); // false
System.out.println((3 != 4)); // true
System.out.println((3 > 4)); // false
System.out.println((3 >= 4)); // false
System.out.println((3 < 4)); // true
System.out.println((3 <= 4)); // true
/*
* 逻辑运算符
*/
System.out.println((3 == 4) & (3 > 4)); // false
System.out.println((3 == 4) | (3 > 4)); // false
System.out.println((3 == 4) ^ (3 > 4)); // flase
System.out.println((3 < 4) ^ (3 > 4)); // true
System.out.println(!(3 == 4)); // true
// &&和&
int j = 4;
int n = 5;
System.out.println((j > n) && ((n++) > j)); // false
System.out.println("j:" + j + ",n:" + n); // j:4,n:5
System.out.println((j > n) & ((n++) > j)); // false
System.out.println("j:" + j + ",n:" + n); // j:4,n:6
/**
* 三元运算符
*/
System.out.println((3 > 4) ? 3 : 4); // 4
}
}