摘要:简单回顾运算符,比如 短路与、短路或; 8大基本数据类型; for 循环,While 循环,do...While 循环, If ...else...条件分支; case , switch , break 跳出循环
一、 运算符
- 所谓的运算符 就是参与数据运算的符号,java定义的 无法自行定义
- 算术远算符 二元运算符 :有两个元素参与运算的运算符
- 算术表达式 = 元素1 二元运算符 元素2,比如 1+2
- 这个表达式是有结果的 就需要有类型,这里的类型是元素种类类型最大的那一种 ,最小使用的类型为int 类型
二、八大基本数据类型
【byte < short < int < long】 (整数类型) < float (单精度 浮点型 1.0F)< double (双精度 浮点型) < char(字符类型,输入不能是字符串) < boolean (布尔型 :true ,flase) 存储空间 由小到大
- 带小数点的数据 会被识别为 精度高的双精度 double 类型 ,比如 1.0
- 数据类型的转换: 把小的数据类型 给一个大的数据类型是可以的 ;但是大的不能给小的数据类型 ,会造成丢失数据。
- 一元运算符 :一个元素参与运算的 运算符
++, -- 自增 ,自减int i = 2; int j = ++i; int u= --i; System.out.println("i = " +i); //i = 2 System.out.println("j = " +j); //j = 3 System.out.println(u); // 2
- 二元运算,含有2个元素 ( 算术运算符 ) : +、 - 、 * 、 /、% (取余运算)
- 三元运算符: (表达式)?() :
- 关系运算符 :比较两个数据之间的大小关系 ==,!=,>, >= , < , <=
- 赋值运算符 (要考虑 类型的关系):=,+=,-=, *=,/=,%=,(复合赋值运算符)比如: i =i+1 ;//等同于i+=1;
- 逻辑运算符:&, | , ^ , ! (取反运算)
- 短路 运算符 :&& 表示 短路与; || 表示 短路或;
- String 字符串类型 , 双引号 " "表示字符串,字符串 + int, 加号+表示连接符 ;
int+int =int ; int+" 字符串" 不能进行运算,只是连接关系
int i = 2;
int j = ++i; // 等同于i=i+1;int j = i; 此时i=3
int u= --i;
输出结果:j = 3, u = 2 (错误点 ,忽略++i == i=i+1; )
2. byte b1+byte b2
- byte 精度 比较小,相加很可能超出它的范围,所以b1 + b2 应该用int 类型接收。
- 易错点:结果的值 b1 + b2 是int 类型; 最小使用的类型为int 类
- // (int + int) => int ,此时 加上小括号 强制转换数据类型 或者改为: Int b3 = b1+b2 ;
byte b1 = 20; byte b2 = 10; byte b3 = b1+b2; 错误写法 byte b3 = (byte) (b1+b2);
System.out.println(b3); //30
System.out.println(1+2*3); //7
System.out.println((1+2)*3); //9把想要先运算的运算符加上小括号 就可以优先执行。
3. 短路或运算 A || B
在第一个条件为真时,跳过第二个条件表达式、不去执行。
- 短路或是Java中的一个逻辑运算符,记作“||”。
- 只有a与b都为false,结果才为false;有一个为true,结果为true。
- 当运算符“||”的左边为true时,右边的表达式就不会进行运算;
- 当左边为false时,计算右边的值。
int ii = 1;
int jj = 2;
boolean result =(ii!=1)||(++jj >2);
System.out.println(result); //true
System.out.println(jj); //3
true || true 结果为 true
true || false 结果为 true
false || false 结果为 false
false || true 结果为 true
4. 短路与运算 A&&B
-
具有短路性质 ,只要有一个条件为假时, 则为假。
- 当A为false时,不去计算B的值而直接返回false;
- 当A为true 时,计算B的值。
// true &&(and) (执行)false => false
// false* &&(and) (不执行)false => false
或运算 |(or)
// true |(or) (执行)false => true
// false |(or) (执行)true => true
与运算 &(and)
// true &(and) (执行)false => true
// false &(and) (执行)false => false
三、流程控制 Flow Control 分支
循环结构 for,while,do while
1. for循环
for( 初始化表达式 ; 条件表达式;更新表达式)
表达式的结果为 flase 则跳出循环 ,不执行;
表达式的结果为 true 则执行;
2. while 有条件的循环
while() { 循环的代码 }
// while循环会判断 条件表达式的结果是否为true .
- 如果为false 跳出循环;
- 如果为true ,会执行大括号内的逻辑代码 ,代码执行完毕后,会重新对条件表达式进行判断。 age++ ;
3. 循环do{ }; while ();
do{ 循环代码 };
while (条件表达式 );
// 执行的是do 循环内的
do... while, while 的联系和区别:
语法执行的原理和while 语法基本相同,区别就在于循环代码是否至少执行1次;
while 循环语法 可能执行 可能不执行,
格式 :
int age = 30; do {age++; System.out.println("循环的代码"+age); } while (age < 40); System.out.println("123");
四、 If 条件结构
2、If…else 必选分支:双分支结构( 二选一)
If 范围 /等值
If… else if… else if… else if… else;
If(i==20){ 执行分支1 } ; else if(i==30){ 执行分支2 }; else if(i==40){ 执行分支3 }; else if(i==50){ 执行分支4}; else{ 执行分支5}; 这里的else不一定存在
5. switch 语法 ,
switch 语法会对数据进行判断,如果等于某一个分支数据的值,那么执行对应分支的逻辑代码。
switch ( 数据 ) { case具体数字: }
break: 跳出case; case 等值分支判断 (具体的数字或者字符串相等)
【如果执行一个分支后 不想继续执行其他分支,那么可以使用break 关键字,跳出分支结构】
- 如果所有分支都无法匹配,那么所有分支都不会执行;
- 如果想要无法匹配也要执行分支,那么可以增加default 关键字。
System.out.println("第一步"); System.out.println("第二步"); String i = "30"; switch (i) { case "10": //判断10是否等于初始值,如果相等 执行语句,其他语句不进行再判断 继续往下走。 System.out.println("分支1"); break; case "30": System.out.println("分支3"); break; case "20": System.out.println("分支2"); break;
6. 快速写代码 小技巧:
- psvm : 自动生成 public static void main( String[ ] args ) { } // 程序的入口
- sout : 自动生成 System.out.println( ); // 输出打印的内容
- 【Ctrl+D】 复制当前行
- 【Ctrl+R】 替换文本
- 【Ctrl + /】 选中文本 快速 进行或取消 更多行的注释
2023.10.10记录