Java SE基础入门小结

  • 运算符
  • 算数运算符
  • 赋值运算符
  • 自增自减运算符
  • 逻辑运算符
  • 三元运算符
  • 流程控制语句
  • 顺序结构
  • 分支结构(if,switch)
  • 分支结构之if语句
  • 分支结构之switch语句
  • 循环结构(for,while,do...while)
  • 循环结构之for语句
  • 循环结构之while语句
  • 循环结构之do...while语句(掌握)
  • 三种循环的区别:


运算符

算数运算符

运算符:对常量或者变量进行操作的符号
表达式:用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式。

int a = 10;
int b = 20;
int c = a + b;

+:是运算符,并且是算术运算符。

a + b:是表达式,由于+是算术运算符,所以这个表达式叫算术表达式

java 流程图中找最长路径的方法_分支结构


char类型参与算术运算,使用的是计算机底层对应的十进制数值。需要我们记住三个字符对应的数值:

‘a’ – 97 a-z是连续的,所以’b’对应的数值是98,'c’是99,依次递加

‘A’ – 65 A-Z是连续的,所以’B’对应的数值是66,'C’是67,依次递加

‘0’ – 48 0-9是连续的,所以’1’对应的数值是49,'2’是50,依次递加

基本数据类型的转换
提升规则:

byte类型,short类型和char类型将被提升到int类型,不管是否有其他类型参与运算。

整个表达式的类型自动提升到与表达式中最高等级的操作数相同的类型

等级顺序:byte,short,char --> int --> long --> float --> double

例如:

byte b1 = 10;
byte b2 = 20;
// byte b3 = b1 + b2; // 该行报错,因为byte类型参与算术运算会自动提示为int,int赋值给byte可能损失精度
int i3 = b1 + b2; // 应该使用int接收
byte b3 = (byte) (b1 + b2); // 或者将结果强制转换为byte类型
-------------------------------
int num1 = 10;
double num2 = 20.0;
double num3 = num1 + num2; // 使用double接收,因为num1会自动提升为double类型

赋值运算符

赋值运算符的作用是将一个表达式的值赋给左边,左边必须是可修改的,不能是常量。

java 流程图中找最长路径的方法_分支结构_02


注意:

扩展的赋值运算符隐含了强制类型转换。

例:

short s = 10;
s = s + 10; // 此行代码报出,因为运算中s提升为int类型,运算结果int赋值给short可能损失精度

s += 10; // 此行代码没有问题,隐含了强制类型转换,相当于 s = (short) (s + 10);

自增自减运算符

java 流程图中找最长路径的方法_循环结构_03


单独操作:

不管 ++/-- 在变量的前面还是在后面,都会自增或者自减一次

参与操作:

++/-- 在前, 先自增或者自减一次,然后再参与其它的运算

++/-- 在后, 先参与其它的运算,再自增或者自减一次

逻辑运算符

逻辑运算符把各个运算的关系表达式连接起来组成一个复杂的逻辑表达式,以判断程序中的表达式是否成立,判断的结果是 true 或 false。

java 流程图中找最长路径的方法_java 流程图中找最长路径的方法_04

三元运算符

三元运算符语法格式:

  • 关系表达式 ? 表达式1 : 表达式2;

解释:问号前面的位置是判断的条件,判断结果为boolean型,为true时调用表达式1,为false时调用表达式2。其逻辑为:如果条件表达式成立或者满足则执行表达式1,否则执行第二个。

流程控制语句

顺序结构

字面意思,从头到尾

分支结构(if,switch)

分支结构之if语句

格式1:
if (关系表达式) {
    语句体;	
}
格式2:
if (关系表达式) {
    语句体1;	
} else {
    语句体2;	
}
格式3:
if (关系表达式1) {
    语句体1;	
} else if (关系表达式2) {
    语句体2;	
} 
…
else {
    语句体n+1;
}

分支结构之switch语句

switch (表达式) {
	case 1:
		语句体1;
		break;
	case 2:
		语句体2;
		break;
	...
	default:
		语句体n+1;
		break;
}
  • 注意:如果switch中得case,没有对应break的话,则会出现case穿透的现象。

循环结构(for,while,do…while)

循环结构之for语句

for (初始化语句;条件判断语句;条件控制语句) {
	循环体语句;
}

循环结构之while语句

初始化语句;
while (条件判断语句) {
	循环体语句;
    条件控制语句;
}

循环结构之do…while语句(掌握)

初始化语句;
do {
	循环体语句;
	条件控制语句;
}while(条件判断语句);

三种循环的区别:

  • for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行)。
  • do…while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)。
  • 条件控制语句所控制的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到了
  • 条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用