1、变量
概念:程序在运行过程中其值可以发生改变的量
1,声明
语法:
数据类型 变量名;
2,赋值
语法:
变量名 = 值;
特殊情况:声明并赋值
数据类型 变量名 = 值;
变量的第一次赋值,称为变量的初始化
3,使用
语法:
直接使用变量名
练习:
1,声明一个变量记录人的名称
String name;
2,声明一个变量记录人的年龄
int age;
3,声明一个变量记录人的性别
char sex;
4,将变量一的人名赋值为张三
name = “张三”;
5,将变量二的年龄赋值为18
age = 18;
6,将变量三的性别赋值为男
sex = ‘男’
7,打印人的姓名
System.out.println(name);
注意:
同一个作用域下变量名不能重复
等号两边数据类型要相同
代码进入main函数后,从上向下依次执行
练习:
分别声明8个基本数据类型的变量,并赋值
声明一个String的变量,并赋值
2、作用域
变量声明时所在的大括号,从声明开始,到这个大括号结束,称为变量的作用域
3、运算符
1、赋值运算符
符号:=
作用:将当好右边的值赋值给左边的变量
例子:
int num01 = 10;
int num02 = num01;
String str01 = “德玛”;
String str02 = str01;
了解:
基本数据类型传递的是值本身
引用数据类型传递的是值的地址
符号:+=
如:
int num01 = 10;
int num02 = 2;
//num01 = num01 + num02;
可以简写为
num01 += num02;
符号:-=
如:
int num01 = 10;
int num02 = 2;
//num01 = num01 – num02;
可以简写为
num01 -= num02;
符号:*=
如:
int num01 = 10;
int num02 = 2;
//num01 = num01 * num02;
可以简写为
num01 *= num02;
符号:/=
如:
int num01 = 10;
int num02 = 2;
//num01 = num01 / num02;
可以简写为
num01 /= num02;
符号:%=
如:
int num01 = 10;
int num02 = 2;
//num01 = num01 % num02;
可以简写为
num01 %= num02;
2、算术运算符
符号:+
作用:加法
符号:-
作用:减法
符号:*
作用:乘法
符号:/
作用:除法
符号:%
作用:取余
符号:++
作用:递增(自增)
++在前
结论:先递增,在参与运算
原理(了解):
1,变量+1
2,赋值给变量
++在后
结论:先参与运算,在递增
原理(了解):
1,存值
2,使用变量+1
3,使用存值参与运算
4,步骤2的赋值给变量
练习:
考试开发
int a = 1;
int b = 10;
(a++) + (++a) + (b++)
开发场景
int num = 0;
num++;
几个商品,单价是10,计算总价
int num01 = 3;
int pire = 10;
int money = num01 * pire;
符号:–
作用:递减
–在前
结论:先递减,在参与运算
原理:
1,变量-1
2,赋值给变量
–在后
结论:先参与运算,在递减
原理:
1,存值
2,使用变量-1
3,使用存值参与运算
4,步骤2的赋值给变量
练习1:
int num = 0;
num–;
此时num的值-1;
练习2:
int num = 10;
System.out.println(num–);//此时打印的值为:10
System.out.println(–num);//此时打印的值为:8
3、逻辑运算符
符号:<
作用:判断符号左边是否小于右边
符号:>
作用:判断符号左边是否大于右边
符号:<=
作用:判断符号左边是否小于或等于右边
符号:>=
作用:判断符号左边是否大于或等于右边
符号:==
作用:判断符号左边是否等于右边
基本数据类型判断的是值是否相同
引用数据类型判断的是地址是否相同
符号:!=
作用:判断符号左边是否不等于右边
符号:&
作用:与逻辑,符号两边同时为真,才为真.反之为假
符号:&&
作用:短路与,与逻辑.符号两边同时为真,才为真.反之为假
&&比&效率高
符号:|
作用:或逻辑,符号两边有真,为真
符号:||
作用:短路或,符号两边有真,为真
||比|效率高
符号:!
作用:非,非真为假,非假为真
!true = false
!false = true
4、三元运算符(三目运算符)
语法:
数据类型 变量名 = 条件表达式 ? 值1:值2;
当条件表达式为true,取值1,反之取值2
条件表达式
计算结果为boolean类型的值的代码,就称为条件表达式
例子:
判断年龄是否大于等于18,如果大于显示已成年,反之显示未成年
思路:
1,定义一个变量记录年龄
int age = 16;
2,判断年龄是否大于等于18
String info = age >= 18 ? “已成年”:”未成年”;
3,打印结果
System.out.println(info);
练习:
获取a,b的最大值并打印,
已知a=10,b=1;
思路:
1,定义变量a,b并赋值
int a = 10;
int b = 1;
2,判断a是否大于b
int max = a > b ? a:b;
3,打印输出max
System.out.println(max);
5、字符串拼接符
符号:+
如:
String str01 = “Hello”;
String str02 = “World”;
String str03 = str01 + str02;
System.out.println(str03);//”HelloWorld”
System.out.println(str02+str01);”WorldHello”
//注意区分+是算数运算符还是字符串连接符
//如果+两边没有字符串,那么此时+为算数运算符
//如果+两边有字符串,那么此时+为字符串拼接符
System.out.println(1 + 2 + “3”);//33
System.out.println(“1” + 2 + 3);//123
所有数据类型与字符串使用字符串连接符,结果都是字符串
6、位运算(了解)
最终使用数字对应的2进制进行计算
^
作用:异或.相同位置上,不同为1,相同为0
计算:9异或2
代码:
int a = 9;//1001
int b = 2;//0010
//异或不同为1,相同为0
int c = a ^ b;//1011
System.out.println(c);//11
&
作用:与.相同位置上,同1为1,有0为0
计算:9与2
代码:
int a = 9;//1001
int b = 2;//0010
int c = a & b;//0000
System.out.println(c);//0
|
作用:或.相同位置上,有1为1,全0为0
计算:9或2
代码:
int a = 9;//1001
int b = 2;//0010
int c = a | b;//1011
System.out.println(c);//11
<<
作用:向左移动
计算1向左移动2位
代码:
int a = 1;//0001.0000
a = a << 2;//000100.00
System.out.println(a);
>>
作用:向右移动
计算1向右移动2位
代码:
int a = 1;//0001.0000
a = a >> 2;//00.010000
System.out.println(a);
7、进制(了解)
二进制
00 01 10 11 100 101 110…
八进制
0 1 2 3 4 5 6 7 10 11 12…
十进制
00 01 02 03 04 05 06 07 08 09 10 11…
十六进制
0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,10,11,12
练习:
将10进制中的215分别转换为2进制,8进制,16进制
将2进制中的1110011转换为10进制
1*2^6+1*2^5+1*2^4+0*2^3+0*2^2+1*2^1+1*2^0
64+32+16+0+0+2+1
115
将8进制中的21转换为10进制
2*8^1 + 1* 8^0 = 17
将16进制的FF转换为10进制
15*16^1 + 15*16^0
15*16 + 15
255
注意:
十进制转换为二进制计算方法:要十进制的数对2取余,直到商0结束,最后将余数倒着读
十进制转换为八进制计算方法:要十进制的数对8取余,直到商0结束,最后将余数倒着读
十进制转换为十六进制计算方法:要十进制的数对16取余,直到商0结束,最后将余数倒着读
二进制转换为十进制进制:用二进制所在位的数字乘以2的该数字输在为的位数减一次方,将每个位置的该数字相加,就是对应的数进制的数
4、数据类型转换
例子:
double d = 10 + 0.1;
等号右边的运算:小类型+大类型=大类型
float比int大
char可以转换为int
boolean不参与运算
小类型转换为大类型:自动转换
大类型转换为小类型:强制转换
小数据类型 变量名 = (小数据类型) 值;
注意:
如果等号的左边比等号的右边类型小,那么就是大类型转为小类型,必须要强制类型转换,否则无法通过编译
如果等号的左边比等号的右边类型大,那么就是小类型转为大类型,自动转换
a~z对应的数字:97~122
A~Z对应的数字:65~90
5、键盘录入(Scanner)
作用:
让用户可以通过键盘给程序中输入数据
使用步骤:
1,导包
书写位置:类上
书写内容:import java.util.Scanner;
2,创建Scanner对象
书写位置:程序内,使用前
书写内容:Scanner 变量名 = new Scanner(System.in);
3,使用scanner对象等待用户输入数据
书写位置:程序内
书写内容:
让用户输入字符串:
String 变量名 = 步骤2的变量名.next();
注意:变量名对应的值就是用户输入的内容
让用户输入数字:
int 变量名 = 步骤2的变量名.nextInt();
注意:
1,变量名对应的值就是用户输入的内容
2,如果用户输入的不是整数,那么程序会崩溃(Bug)
注意:步骤3可以重复多次