学习小结
-
变量是一个数据存储空间的表示,变量都有数据类型。
使用变量的步骤:
i. 第一步:声明一个变量
ii. 第二步:赋值
iii. 第三步:使用变量 -
数据类型
i. 基本数据类型:char, byte, short, int, long, float, double, Boolean
ii. 引用类型:类、数组、接口、枚举 -
常量
i. 全局常量:在类中声明。
语法:[ static ] final 类型 常量名 = 值;
ii. 局部常量:在代码块(方法、构造函数)中声明
语法:final 类型 常量名 = 值; -
类型转换
i. 自动类型转换
小宽度类型的值或变量赋给大宽度类型(目标类型)的变量且类型上兼容。
自动类型转总是安全的,也就是说数值的精度不受影响。
ii. 强制类型转换
强制类型转换用于显式类型转换。如果被转换的值的数据类型大于其目标类型,就会丢失部分信息。因强制类型转换可能会导致精度丢失,所以强制类型转换不安全。
一、if结构、if-else结构
2.1 语法
if(条件/布尔表达式 && expression2 || expression3) {
//if结构主体
}If结构流程图 if-else结构流程图
示例:
Scanner input = new Scanner(System.in);
int java = input.nextInt();
if(java>90){
System.out.println(“师父就奖励他一本武功秘笈!”);
} else{
System.out.println(“师父打屁屁!”);
}
二、关系(比较)运算符
关系运算符有:<, >, ==, <=, >=, !=
用途:将左右两个操作数进行关系运算。运算结果为boolean 值。
三、逻辑运算符
逻辑运算符有:&& (&) 与, ||或, !非(取反)
用途:&&和||可将两个 Boolean 表达式连接起来,运算结果为 Boolean 值。
! 是对一个 Boolean 表达式或 Boolean 值进行取反。
(这个&与和|或平时少用)位运算符:&与, |或
(重要) &和&&的区别:
a) &和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。
b) &&还具有短路的功能(如:1>2 && 10>9),即如果第一个表达式为false,则不再计算第二个表达式,&还可以用做位运算符,当&操作符两边的表达式不是boolean类型时(如:1 & 3 ),&表示按位与操作。
运算符的优先级:
a) 最高的优先级:小括号,即: ( )
b) 最低的优先级:赋值运算符,即=
c) (记一下这个)优先级顺序:()>!>算术运算符>关系运算符> && > ||
3.1 运算符汇总
运算符 描述 示例
算术运算符 算术运算符使用数字操作数。这些运算符主要用于数学计算 +, -, *, % 等
关系运算符 关系运算符用于测试两个操作数之间的关系。使用关系运算符的表达式的结果为 boolean 型 ==, >=, <=, >, != 等
逻辑运算符 逻辑运算符用于 boolean 操作数 &, |, ^,&&,||,! 等
条件运算符
expr? result1: result2 条件运算符很独特,因为它是用三个操作数组成表达式的三元运算符。它可以替代某种类型的 if-else 语句 (条件表达式) ? 值1 : 值2
(三元运算符)
赋值运算符 赋值运算符为一个等号 =,它将值赋给变量 =, *=, /=, +=, -=
Int a = 1, b =2;
a /= b; //等价于:a = a/b;
(不需要刻意去背)运算符的优先级:
顺序 运算符
1 括号,如 ( )
2 一元运算符,如 ++、- -和 !
3 算术运算符,如 、/、%、+ 和 -
4 关系运算符,如 >、>=、<、<=、== 和 !=
5 逻辑运算符,如 &、^(异或,少用)、|、&&、||
6 条件运算符和赋值运算符,如 ? :、=、=、/=、+= 和 -=
四、多重if-else结构
多重if结构就是在else部分中还包含其他if块。
b) 语法:
if(条件1){
//条件1成立执行语句1
} else if(条件2){
//条件2成立执行语句2
} else if(条件3){
//条件3成立执行语句3
} else {
//条件123都不成立执行其它
}
多重的if-else结构流程图
五、switch结构
5.1 语法
注意:
switch(表达式), 这里表达式的值的类型可以是:byte, short, int, char; long和String不行;
Java 5开始,Java中引入了枚举类型,”表达式” 也可以是enum类型; 但在Java7后case可以用String了。
但是长整型(long)在目前所有的版本中都是不可以的。
switch(表达式){
case 常量1: //情况1
语句1
break; //跳出switch结构
case 常量2: //情况2
语句2
break; //跳出switch结构
case 常量3: //情况3
语句3
break; //跳出switch结构
default: //所有情况都不匹配的时候
default语句
}
注意:break语句的作用
示例:
public static void main(String[] args) {
//Scanner input = new Scanner(System.in);
//System.out.print(“请输入名次:”);
//int mingci = input.nextInt();
char ch = 'A';
//注意:switch(表达式),这里表达式的类型可以是:byte,short,int,char; long和String不行。
switch(ch){
case 'A':
System.out.println("出任武林盟主!");
break;
case 'B':
System.out.println("出任武当掌门!");
break;
case 'C':
case 'D':
case 'E': //多个case可以并列,执行的语句相同
System.out.println("出任峨嵋掌门!");
break;
default:
System.out.println("被逐出师门");
}
}
5.2 switch和多重if-else结构比较