变量
概念:记录一个可变的数据
使用
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函数后,从上向下依次执行
作用域:变量声明时所在的大括号 从声明开始,到这个大括号结束 称为变量的作用域
运算符
符号:= 作用:将当好右边的值赋值给左边的变量
例子: 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
算术运算符
符号:+ 作用:加法
符号:- 作用:减法
符号:* 作用:乘法
符号:/ 作用:除法
符号:% 作用:取余
符号:++ 作用:递增(自增)
++在前 结论:先递增,在参与运算 原理(了解):
1,变量+1
2,赋值给变量 逻辑运算符
++在后 结论:先参与运算,在递增 原理(了解):
1,存值(存的是递增的那个值而不是被赋值的)
2,使用变量+1
3,使用存值参与运算
4,步骤2的赋值给变量
public class test8 {
public static void main(String[] args) {
int i = 0; //i=0
int a = i++;//a=0,i=1
int b = ++a; //b=1,a=1
int c = a; //c=1
int d = (a == 1)?b:c; //d=1
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
}
}
逻辑运算符
符号:< 作用:判断符号左边是否小于右边
符号:> 作用:判断符号左边是否大于右边
符号:>= 作用:判断符号左边是否大于或等于右边
符号:== 作用:判断符号左边是否等于右边
注意:基本数据类型判断的是值是否相同 引用数据类型判断的是地址是否相同
符号:!= 作用:判断符号左边是否不等于右边
符号:& 作用:与逻辑,符号两边同时为真,才为真.反之为假(要全部都判断)
符号:&& 作用:短路与,与逻辑.符号两边同时为真,才为真.反之为假 &&比&效率高(若前半部分为假则不再判断后半部分所以说效率更高)
符号:| 作用:或逻辑,符号两边有真,为真
符号:|| 作用:短路或,符号两边有真,为真 ||比|效率高
符号:! 作用:非,非真为假,非假为真 !true = false !false = true
三目运算符
语法: 数据类型 变量名 = 条件表达式 ? 值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)
字符串拼接符
符号:+
如: 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 因为前面两个得到的结果任然是字符串.
所有数据类型与字符串使用字符串连接符,结果都是字符串
位运算
最终使用数字对应的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;//00.010000 System.out.println(a);
数据类型转换
例子:
double d = 10 + 0.1; 等号右边的运算:小类型+大类型=大类型 float比int大 char可以转换为int boolean不参与运算
小类型转换为大类型:自动转换
大类型转换为小类型:强制转换 格式:小数据类型 变量名 = (小数据类型) 值;
注意: 如果等号的左边比等号的右边类型小,那么就是大类型转为小类型,必须要强制类型转换,否则无法通过编 译 如果等号的左边比等号的右边类型大,那么就是小类型转为大类型,自动转换 a~z对应的数字:97~122 A~Z对应的数字:65~90
键盘录入
作用: 让用户可以通过键盘给程序中输入数据
使用步骤: 1,导包 书写位置:类上 书写内容:import java.util.Scanner;
2,创建Scanner对象 书写位置:程序内,使用前 书写内容:Scanner 变量名 = new Scanner(System.in);
3,使用scanner对象等待用户输入数据 书写位置:程序内
书写内容: 让用户输入字符串: String 变量名 = 步骤2的变量名.next();
让用户输入数字: int 变量名 = 步骤2的变量名.nextInt();
注意: 1,变量名对应的值就是用户输入的内容 2,如果用户输入的不是整数,那么程序会崩溃(Bug) 注意:步骤3可以重复多次