JavaDay03

变量

引入

7月20日,张三在都市快捷酒店开房,房间号520,房间类型是大床房
此时如果说520的住户,指的就是张三
7月21日,张三退房,富贵入住520
此时如果说520的住户,指的就是富贵


概念

记录一个可以被改变的值

使用

1,声明
语法:数据类型 变量名;
注意:
1,同一个作用域下变量名不能重复
2,只能在方法中声明,main函数(main方法)
特殊情况(了解):
一次可以声明多个数据类型相同的变量
语法:
数据类型 变量名1,变量名2,变量名3,…;
2,赋值
语法:变量名 = 值;
特殊情况:声明并赋值
语法:数据类型 变量名 = 值;
注意:
一个变量可以多次赋值
3,使用
直接使用变量名

注意:
初始化:变量的第一次赋值,称为变量的初始化
作用域:变量声明时,所在的大括号中可以使用

练习1:
定义一些变量记录一个人的姓名,性别,年龄,肤色
姓名:狗蛋
String name = “狗蛋”;
性别:女
char sex = ‘女’;
年龄:18
int age = 18;
肤色:黑
String color = “黑”;
打印这个人的信息
System.out.println(“姓名:”+name+”性别:”+sex+”年龄:”+age+”肤色:”+color);
后期做了整容,改了名字
修改后名称:大漂亮
name = “大漂亮”;
肤色:白
color = “白”;
重新打印个人信息
System.out.println(“姓名:”+name+”性别:”+sex+”年龄:”+age+”肤色:”+color);

转义字符

概念:特殊的字符
例子:打印输出内容如下
老子说:”孔子说的对”
System.out.println(“老子说:"孔子说的对"“)
常用的转义字符:
" 表示内容的双引号
' 表示内容的单引号
\ 表示内容的反斜杠
\n 换行
\t 制表

运算符

算法运算符

+,-,*,/,%(取余)
++:自增
++在前
如:
int num = 0;
System.out.println(++num);
System.out.println(++num);
System.out.println(++num);
总结:先自增,在参与运算
步骤(了解):
1,自增
2,参与运算
从运行效率的角度考虑++在前的运行速度高一些
++在后
如:
int num = 0;
System.out.println(num++);
总结:先参与运算,在自增
步骤(了解):
1,存值
2,使用自己+1
3,使用存值进行运算

–:递减
–在前:
如:
int num = 0;
System.out.println(–num);
System.out.println(–num);
System.out.println(–num);
总结:先递减,在参与运算
–在后:
如:
int num = 0;
System.out.println(num++);
总结:先参与运算,在递减

计算一下结果:
int a = 10;
int b = 2;
++a + a + (b–)=24


逻辑运算符

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<:小于
<=:小于等于
>:大于
>=:大于等于
==:判断是否相等
==可以判断基本数据类型值是否相同
==可以判断引用数据类型地址是否相同(了解)
!=:判断是否不相同

&&:短路与 同真为真
||:短路或 有真为真
!:非 非真为假,非假为真
练习:
判断人的年龄是否大于等于18,并且判断性别为男
步骤:
1,定义一个变量记录年龄
2,定义一个变量记录性别
3,判断年龄是否大于等于18并且性别等于男
代码:
class Test{
public static void main(String[] args){
int age = 18;
char sex = '女';
System.out.println(age >= 18 && sex == '男');
}
}

注意:使用逻辑运算符连接的算式称为条件表达式


### 赋值运算符

=:将等号右边的值赋值给左边的变量
int a = 10;
int b = a;
//a = 10,b = 10
a = 2
//a = 2,b=10

+=:加等
int a = 10;
int b = 1;
//b = b + a;
b += a;
//a = 10,b=11
-=:减等
int a = 10;
int b = 1;
//b = b - a;
b -= a;
//a = 10,b=-9
*=
/=
%=



### 三目运算符

别名:三元运算符

语法格式:
条件表达式?值1:值2;
注意:当条件表达式值为true时,取值1,否则取值2
例子1:
判断年龄是否大于等于18,如果大于输出成年,否则输出未成年
步骤
1,定义一个变量记录年龄
2,判断年龄是否等于18?"成年":"未成年";
例子2:
获取三个值中的最大值
要求:使用三目运算符完成

步骤
1,定义三个变量记录值
int a = 10;
int b = 1;
int c = 12;
2,先获取a与b之间的最大值
int max = a > b?a:b;
3,使用步骤2的最大值与c进行比较,获取其最大值
int overMax = max > c?max:c;
注意:步骤2与步骤3合并
int overMax = (a > b?a:b) > c ? (a > b?a:b) : c;

字符串连接符

1
2
3
4
5
6
7
+
在运算中出现字符串(String),此时+表示字符串连接符
注意:
所有数据类型与字符串使用字符串连接符,结果都为字符串

"123" + 1+ 2+ 3 = "123123"
1+2+3+"123" = "6123";

位运算(扩展)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<<
4 << 2
100
10000 = 16
>>
4 >> 2
100
1 = 1

&(同真为真)
4 & 1
100
001
000 = 0
|(有真为真)
4 | 1
100
001
101 = 5
^(相同为假,不同为真)
4^2
100
010
110 = 6

进制(扩展)

1
2
3
4
5
6
7
8
9
十进制
00 01 02 03 04 05 06 07 08 09 10
总结:逢10进1,但是没有10
二进制
0 1 10 11 100 101 110 111 1000 1001 1010
八进制
0 1 2 3 4 5 6 7 10 11 12
十六进制
0 1 2 3 4 5 6 7 8 9 a b c d e f 10

键盘录入(提高代码趣味)

对应的类:Scanner
使用步骤:
1,导包
代码:import java.util.Scanner;
书写位置:
类上
2,创建Scanner对象
代码:Scanner 变量名 = new Scanner(System.in);
书写位置:
使用之前
3,等待用户输入
等待用户输入字符串:
String 变量名2 = 步骤2的变量名.next();
等待用户输入整形数字
int 变量名3 = 步骤2的变量名.nextInt();
书写位置:
代码逻辑需要用户输入的使用

例子:
让用户输入姓名与年龄,在打印到控制台
步骤:
1,定义两个变量分别记录姓名与年龄
2,倒入Scanner所在的包
3,创建Scanner对象
4,提示用户输入姓名
5,等待用户输入姓名
6,提示用户输入年龄
7,等待用户输入姓名
8,打印用户输入的年龄与姓名

比较字符串内容是否相同

语法:
字符串的变量名或字符串.equals(要比较的字符串或字符串变量名)

例子:
String str01 = “常威打来福”;
String str02 = “来福被大四了”;
boolean b = str01.equals(str02);


1,键盘录入三个数,获取最小值打印输出

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import java.util.Scanner;
class test2{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
System.out.println("输入第一个数:");
int a = in.nextInt();
System.out.println("输入第二个数:");
int b = in.nextInt();
System.out.println("输入第三个数:");
int c = in.nextInt();

System.out.println("最小的数是"+ (a<b?a:(b<c?b:c)));
}
}

2,键盘录入账号密码,判断如果输入的账号为admin,输入的密码为123456,输出等于成功,否则输出等于失败

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import java.util.Scanner;
class test3{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
System.out.println("输入账号:");
String a = in.next();
System.out.println("输入密码:");
String b = in.next();
boolean t = a.equals("admin");
boolean f = b.equals("123456");
System.out.println(t && f?"成功":"失败");


}
}

3,将以下10进制的数转换为指定的进行
97 8进制 141
12 2进制 1100
101 16进制 65 0110 0101
35 8进制 43
21 2进制 10101