package com.zhiyou100.yunsuan;public class Demo1 { public static void main(String[] args) { /* * 算术运算符: --> 数学运算 * 加 + * 两个作用: * 1) 做加法: 当操作符两边数据类型不一致时,结果的数据类型与范围较大一致 * char型数据可以做加法,结果是数字 * 2) 加号前或后有字符串时 做拼接,一旦前面是字符串相加,后续所有加法都是拼接 * 减 - * 两个作用: * 1) 减法,特点与加法类似,但是不能拼接字符串 * 2) 负号 * 乘 * * 乘法,特点与加法类似 * 除 / * 除法,整数相除,如果除不尽,直接舍弃小数点后的数字,不是四舍五入 * 如果想保留小数部分,需要将操作数任意一个变为浮点型即可 * 取余 % * 除不尽取余. 余数有正负 * 正负与%前的被取余数有关系,前为正结果为正,… / System.out.println(1 + 1);
System.out.println(“1” + 1); System.out.println(1 + “1”); System.out.println(1 + 1 + “1”+ 1+ 1); System.out.println(1 + 1.0); System.out.println(’\u4e00’+‘A’); System.out.println(1 - 1); System.out.println(1 - 1.0); // 减法 - 做负号 int a = 1; System.out.println(-a + 1); System.out.println(1 * 2); System.out.println(1 * 2.0); System.out.println(9 / 3); System.out.println(10 / 4); System.out.println(10 / 3.0); System.out.println("-------------"); System.out.println(9 % 3); System.out.println(10 % 3); // 1 System.out.println(-10 % 3);// -1 System.out.println(10 % -3);// 1 System.out.println(-10 % -3);// -1 } }
public static void main(String[] args) { / * 赋值运算符 * = : * 数据类型 变量 = 值; 将右侧的值赋值给左侧变量 * += * a += b ==> a = a + b * -= * * *= * a *= b ==> a = a * b; * /= * * *
*/
int a = 1;
int b = 0;
b += a; System.out.println(b);
int c = 2;
int d = 3; d *= c; System.out.println(d); }
public static void main(String[] args) { /* * 关系运算符: 运算后的结果是布尔类型>:true / false * > < >= <= * != 判断是否不等 * == 判断是否相等 */ int a = 1; int b = 2; System.out.println(1 > 0); System.out.println(a > b); System.out.println(1 >= 1); System.out.println(1 <= 1); System.out.println(1 != 1); System.out.println(1 == 1); }
package com.zhiyou100.yunsuan;public class Demo4 { public static void main(String[] args) { // 这是算法异常,执行报错,程序停止 // System.out.println(1 / 0);
/*
* 逻辑运算符: * 语法格式: * boolean r = 布尔表达式1 逻辑运算符(&;|;!...) 布尔表达式2 * 1) 逻辑运算符运算结果是布尔类型 * 2) 布尔表达式:是指运算结果是布尔值的式子 * & 与/和(and) * 只有&两边的表达式的值都是true 整体结果才是true,其他都是false * 全真才真,一假就假 * | 或 * 只有|两边的表达式的值都是false 整体结果才是false,其他都是true * 全假才假,一真就真 * ! 非/取反 * 非错即对 * && 短路与 * 因为&是一错就错,所以当&&前已经是false时,那么就可以确定整体表达式的结果是false * 后续的表达式就不再执行了 * || 短路或 * 与上类似 * ===> * 只要第一个表达式的结果能确定整体表达式的结果,后面表达式就短路不执行. * */ boolean r1 = 1 > 0 && 2 < 0; //短路与 假 boolean r1 = 2 < 0 || 1 > 0;//boolean r1 = 1 > 0 & 2 < 0; boolean r1 = 2 < 0 | 1 > 0; System.out.println(r1); System.out.println("-----"); System.out.println(1 > 0 & 2 > 0);// T & T = T System.out.println(1 > 0 & 2 < 0);// T & F = F System.out.println(1 < 0 & 2 > 0);// F & T = F System.out.println(1 < 0 & 2 < 0);// F & F = F System.out.println("-----"); System.out.println(1 > 0 | 2 > 0);// T | T = T System.out.println(1 > 0 | 2 < 0);// T | F = T System.out.println(1 < 0 | 2 > 0);// F | T = T System.out.println(1 < 0 | 2 < 0);// F | F = F System.out.println("-----"); System.out.println(!true); System.out.println(!(1 < 0 )| 2 < 0); System.out.println(!(1 < 0 | 2 < 0)); System.out.println("-----");
//System.out.println(1 > 0 && 1 / 0 == 1);// T & F = F //System.out.println(1 < 0 && 1 / 0 == 1);// F & T = F System.out.println("-----"); //System.out.println(1 > 0 || 1 / 0 == 1);// T || F = T //System.out.println(1 < 0 || 1 / 0 == 1);// F || T = F System.out.println((1 < 0 || 1 / 1 == 1)&&(1 > 0 || 1 / 0 == 1));先判断两个小括号里true/fales第一个小括号:1 < 0为假 1 / 1 == 1为真 ==> 第一个小括号结果为true第二个小括号:1 > 0为true 因为短路或一真就真 后边的不做判断被短路 ==> true小括号1:true 小括号2:true ==> true }}
package com.zhiyou100.yunsuan;public class Demo5 { public static void main(String[] args) { /* * 三目/三元运算: * 数据类型 变量 = 布尔表达式 ?当前面结果是true时执行此处:当前面结果是false时执行此处; * 数据类型 变量 = A ? B : C; * 1) 先执行A处的布尔运算,得到一个布尔值 * 2) 当布尔值是true时,执行B处的代码 * 3) 当布尔值是false时,执行C处的代码 * 4) 整体结果的数据类型根据 执行B处或者C处的代码的结果而定 * 5) B处和C处的结果数据类型一致 */ int a = 1; int b = 2; int s = a < b ? 1 : 0; System.out.println(s); int r1 = a < b ?(a > b ? a:b) : (a < b ? a : b); int r2 = a < b ? (a+b*4): (a < b ? a : b); System.out.println(r1); System.out.println(r2);
/* * 假设变量整型c,d,e. 使用三目运算比较大小,输出最大值 */ int c = 110; int d = 180; int e = 1100; int r3 = c > d ? c : d; System.out.println(r3); int r4 = c > d ?(c > e ? c: e):(d > e ? d : e); System.out.prin trn(tn)
```mermaid
![graph TD;
A-->B;
B-->C;](https://img-blog.csdnimg.cn/20210530194436908.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpa3Nkcw==,size_16,color_FFFFFF,t_70)
package com.zhiyou100.control;public class Demo6 { public static void main(String[] args) { /* * 分支语句 - if语句 * 语法: * if (布尔表达式) { * 语句1; * 语句2; * ... * } * 执行流程: * 1 先判断布尔表达式 * 2 如果结果是true,就执行if后的{} 内的语句,然后继续执行后续的 * 3 如果结果是false,就跳过if后的{} 而是执行后续的代码 */ if (1 < 0) { System.out.println("1 > 0"); } System.out.println("后续..."); int age = 27; //if (age >= 18) { // System.out.println("欢迎访问本网站~"); //} //System.out.println("你还小,等几年..."); /* 如何做到二选一执行? * 双分支- if..else.. * if (布尔表达式) { * 当布尔表达式值是true时,执行if后的语句, * 且不执行else中的语句 * } else {
* 当布尔表达式值是false时,不执行if后的 * 而是执行else后的语句, * } * */ if (age >= 18) { System.out.println("欢迎访问本网站~"); } else { System.out.println("你还小,等几年..."); } System.out.println("-------------"); int a = 10; int b = 32; int c = 30; // 使用if-else 完成变量ab比较大小,输出最大值 if (a > b) { System.out.println("a大 a="+a); } else { System.out.println("b大 b="+b); } // 使用if-else 完成变量abc比较大小,输出最大值 if (a > b) { if (a > c) { System.out.println("a = "+a); } else { System.out.println("c = "+c); } } else { if (b > c) { System.out.println("b = "+b); } else { System.out.println("c = "+c); } } // 判断是周几 int week = 6; if(week == 1) { System.out.println("周一"); } else { if(week == 2) { System.out.println("周二"); } else { if (week == 3) {
* System.out.println("周三"); }else { if(week == 4) { System.out.println("周四"); }else { if(week == 5) { System.out.println("周五"); }else { if(week == 6) { System.out.println("周六"); }else { if(week == 7) { System.out.println("周日"); } } } } } } } /* 多选一 * if..else if..else if..else if..else * if(布尔表达式1) { * 语句1; * } else if (布尔表达式2) { * 语句2; * } else if (布尔表达式3) { * 语句3; * } ...{ * 语句n; * } else { * 语句n+1; * } * 一旦有某个语句执行了,后续的if else if等不再执行. */ if (week >0 && week < 8) { if (week == 1) { System.out.println("周一"); } else if(week == 2) { System.out.println("周二"); } else if(week == 3) { System.out.println("周3"); } else if(week == 4) { System.out.println("周4");
} else if(week == 5) { System.out.println("周5"); } else if(week == 6) { System.out.println("周6"); } else { System.out.println("周7"); } } else { System.out.println("数字有误!"); } System.out.println("后续"); } }
package com.zhiyou100.control;public class Demo7 { public static void main(String[] args) { /* * 选择语句 - switch case语句 * 语法 : * switch (值) { * case 值1: * 语句1; * break; * case 值2: * 语句2; * break; * ... * case 值n: * 语句n; * break; * default : * 语句n+1; * } * 执行流程: * 1) switch后的值,与case后的值比较
* 2) 如果相等,就执行该case下的语句 * 3) 如果遇到break,跳出switch结构,执行后续 * 4) 如果没有break,会造成case击穿 * 5) 如果不相等,比对下一个case * 6) ... * 7) 如果没有一个case比对成,那么会执行default中的语句 */ char week = 1; switch (week) { // switch后支持 byte short int char String enum(枚举) case 1: // case后的值的数据类型要与switch的值数据类型一致 // case 值后 是冒号! System.out.println("周一"); break; // 如果没有break,会击穿下面的case,直接执行其中的语句 // 如果有break,跳出switch执行后续代码 case 2: System.out.println("周二"); break; case 3: System.out.println("周三"); break; case 4: System.out.println("周四"); break; default : // default 后没有值 // default 是最后执行的 // default 可以不放在最后写 System.out.println("其他"); } System.out.println("后续"); /* * 利用switch case * 对数据判断,输出季节 * 3-5春季 * 6-8夏季 * 9-11秋季 * 12-2冬季 */ int month = 1; switch (month) { case 3: case 4:
* case 5: System.out.println("spring"); break; case 6: case 7: case 8: System.out.println("sunmer"); break; case 9: case 10: case 11: System.out.println("autumn"); break; case 12: case 0: case 1: System.out.println("winter"); default: System.out.println("ok"); break