java 运算符
-
算术运算符
-
关系运算符
-
位运算符
-
逻辑运算符
-
赋值运算符
-
三目运算
-
其他
算术运算符
做运算时,将结果的数据类型提升
大范围的数据类型不能向小范围的数据类型转换。
A = 10,B = 20
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9035F5z5-1676432787790)(D:\前锋学习笔记\笔记\image-20230202083947932.png)]
自增自减运算符
// 后自增
int a = 1;
System.out.println(a++); // 1
// 前自增加
int b = 1;
System.out.println(++b); // 2
// 后自减
int a1 = 1;
System.out.println(a1--); // 1
// 前自减
int b1 = 1;
System.out.println(--b1); // 0
int a = 5;//定义一个变量;
int b = 5;
int x = 2*++a;
int y = 2*b++;
System.out.println("自增运算符前缀运算后a="+a+",x="+x);
System.out.println("自增运算符后缀运算后b="+b+",y="+y);
// 自增运算符前缀运算后a=6,x=12
// 自增运算符后缀运算后b=6,y=10
关系运算符
表格中的实例整数变量A的值为10,变量B的值为20
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kdCUQud9-1676432787791)(D:\前锋学习笔记\笔记\image-20230202092709603.png)]
int a = 10;
int b = 20;
System.out.println("a == b = " + (a == b) );
System.out.println("a != b = " + (a != b) );
System.out.println("a > b = " + (a > b) );
System.out.println("a < b = " + (a < b) );
System.out.println("b >= a = " + (b >= a) );
System.out.println("b <= a = " + (b <= a) );
输出结果:
a == b = false
a != b = true
a > b = false
a < b = true
b >= a = true
b <= a = false
位运算
Java定义了位运算,应用于整数类型int 长整数型long 短整型short 字符型char 和 字节型byte类型
a = 60 b = 13
1对 0 错
A = 0011 1100
B = 0000 1101
--------------
A&B = 1100 1100
相同就是1不同为0,
A = 0011 1100
B = 0000 1101
--------------
A | B = 0011 1101
有1的就为1
A = 0011 1100
B = 0000 1101
--------------
A ^ B = 0011 0001
不同为1,相同为0
~A = 1100 0011
// 取余数是用来判断奇偶性
逻辑运算符
做逻辑运算
&(和/与)
语法 : boolean 变量 = 关系表达式1 & 关系表达式2;
先执行关系表达式1再去判断关系表达式2,然后判断两个结果,如果两个结果都为true,那么整体结果就是true.否则是false.
总结:全对才对,一错就错。
| (或)
语法 : boolean 变量 = 关系表达式1 & 关系表达式2;
总结:全错才错,一错就错。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i9OIMDHu-1676432787792)(D:\前锋学习笔记\笔记\image-20230202101604299.png)]
&&(短路,逻辑与) 与 & 的区别。
&&左边对才执行右,不对就不执行右边
|| 左边有对就不执行右边,左边不对再执行右边。
!(非)作用:将布尔表达式的结果取反
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HqW25DVD-1676432787792)(D:\前锋学习笔记\笔记\image-20230202102635492.png)]
boolean a = true;
boolean b = false;
System.out.println(a&&b);// fales
System.out.println(a||b);// true
System.out.println(!a);// fales
System.out.println(!b);//true
❤短路逻辑运算符
当使用与逻辑运算符,在两个操作数都为true时,结果才为true,但是当得到第一个操作为false时,其结果必为false,这时候就不会判断第二操作了。
int a = 5;
boolean b = (a<4)&&(a++<10);
System.out.println(b);// false
System.out.println(a);// 5
赋值运算符
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ywoIluoz-1676432787792)(D:\前锋学习笔记\笔记\image-20230202111136291.png)]
+=默认进行了强制类型转换
强制转换:大的数据类型向小的数据类型需要强制转换.
❤三目运算—条件运算符 (?😃
数据类型 变量名 = 布尔表达式 ?true 执行此处 :false执行此处;
嵌套使用
条件运算符也被称为三元运算符。该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符的主要是决定哪个值应该赋值给变量。
int a,b;
a = 10;
// 如果 a 等于 1 成立,则设置 b 为 20,否则为 30
b = (a == 1) ? 20 : 30;
System.out.println(b);
// 如果 a 等于 10 成立,则设置 b 为 20,否则为30
b = (a == 10)? 20:30;
System.out.println(b);
instanceof 运算符
该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)。
instanceof运算符使用格式如下:
( Object reference variable ) instanceof)(class/interface type)
class Vehicle {}
public class Car extends Vehicle {
public static void main(String[] args){
Vehicle a = new Car();
boolean result = a instanceof Car;
System.out.println( result);
}
}
:true
## Java运算符优先级
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SjuiDMfy-1676432787793)(D:\前锋学习笔记\笔记\image-20230202114205472.png)]
== 判断两个数据是否相等。
Java流程控制语句 和 循环结构
Java 循环结构 - for, while 及 do…while
while 循环
while(布尔表达式){
// 循环体
}
public class Test {
public static void main(String[] args) {
int x = 10;
while( x < 20 ) {
System.out.print("value of x : " + x );
x++;
System.out.print("\n");
}
}
}
do…while 循环
对于 while 语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。
do…while 循环和 while 循环相似,不同的是,do…while 循环至少会执行一次。
do {
//代码语句
}while(布尔表达式);
public class Test {
public static void main(String[] args){
int x = 10;
do{
System.out.print("value of x : " + x );
x++;
System.out.print("\n");
}while( x < 20 );
}
}
## 变量交换的三种方法式
// 方法一:
// int temp;
// temp = num1;
// num1 = num2;
// num2 = temp;
// 方法二:
// num1 = num1 + num2; num1 = 3+5 =8
// num2 = num1 - num2; num2 = 8 - 5
// num1 = num1 - num2; num1 = 8 - 3
// 法三:异或,使用位运算符
// num1 = num1 ^ num2;
// num2 = num1 ^ num2;
// num1 = num1 ^ num2;
for 循环(重要)
虽然所有循环结构都可以用 while 或者 do…while表示,但 Java 提供了另一种语句 —— for 循环,使一些循环结构变得更加简单。
for(初始化; 布尔表达式; 更新) {
//循环体
}
执行流程
1.执行初始值
2.判断表达式
3.如果结果为true,向下执行循环体
4.后再向上执行迭代
5.后再判断,直到判断为false,跳出for循环
变量的作用域
变量都有它的作用范围,离他最近范围的{}内有效。
for循环的特点Duplicate:重复
-
最先执行初始化步骤,可以声明一种类型,但可以初始化一个或多个循环控制变量,也可以空语句。
-
然后,检测布尔表达式的值,如果为true,循环体被执行,如果为false,循环终止,开始执行循环体后面的语句。
-
执行一次循环后,更新循环控制变量。
-
再次检测布尔表达式,循环执行上面的过程。
java增强for循环
for(声明语句 : 表达式) { //代码句子 }
**声明语句:**声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。
**表达式:**表达式是要访问的数组名,或者是返回值为数组的方法。
int [] numbers = {10, 20, 30, 40, 50}; for(int x : numbers ){ System.out.print( x ); System.out.print(","); }
双重for循环
// 外层for控制行数
// nei'c
public static void main(String[] args) {
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 8; j++) {
System.out.print("*");
}
System.out.println();
}
}
break关键字
break主要用在循环语句或者switch 语句中,用来跳出整个语句块。
break跳出最里层的循环,并且继续执行循环下一个语句下的语句。
break:可以用来终端循环。终断当前循环。
public class Test {
public static void main(String[] args) {
int [] numbers = {10, 20, 30, 40, 50};
for(int x : numbers ) {
// x 等于 30 时跳出循环
if( x == 30 ) {
break;
}
System.out.print( x );
System.out.print("\n");
}
}
}
contiune 关键字
continue 适用于任何循环控制结构中。作用是让程序立刻跳转到下一次循环的迭代,只能在循环中使用终端这次循环继续执行下次循环。
在 for 循环中,continue 语句使程序立即跳转到更新语句。
在 while 或者 do…while 循环中,程序立即跳转到布尔表达式的判断语句。
public class Test {
public static void main(String[] args) {
int [] numbers = {10, 20, 30, 40, 50};
for(int x : numbers ) {
if( x == 30 ) {
continue;
}
System.out.print( x );
System.out.print("\n");
}
}
}
Java 条件语句 - if…else
一个if语句包含一个布尔表达式和一条或多条语句。
语法
if(布尔表达式)
{
//如果布尔表达式为true将执行的语句
}
public class Test {
public static void main(String args[]){
int x = 10;
if( x < 20 ){
System.out.print("这是 if 语句");
}
}
}
if…else语句
if(布尔表达式){
//如果布尔表达式的值为true
}else{
//如果布尔表达式的值为false
}
public class Test {
public static void main(String args[]){
int x = 30;
if( x < 20 ){
System.out.print("这是 if 语句");
}else{
System.out.print("这是 else 语句");
}
}
}
if…else if…else 语句
if 语句后面可以跟 else if…else 语句,这种语句可以检测到多种可能的情况。
使用 if,else if,else 语句的时候,需要注意下面几点:
-
if 语句至多有 1 个 else 语句,else 语句在所有的 else if 语句之后。
-
if 语句可以有若干个 else if 语句,它们必须在 else 语句之前。
-
一旦其中一个 else if 语句检测为 true,其他的 else if 以及 else 语句都将跳过执行。
if(布尔表达式 1){ //如果布尔表达式 1的值为true执行代码 }else if(布尔表达式 2){ //如果布尔表达式 2的值为true执行代码 }else if(布尔表达式 3){ //如果布尔表达式 3的值为true执行代码 }else { //如果以上布尔表达式都不为true执行代码 } public class Test { public static void main(String args[]){ int x = 30; if( x == 10 ){ System.out.print("Value of X is 10"); }else if( x == 20 ){ System.out.print("Value of X is 20"); }else if( x == 30 ){ System.out.print("Value of X is 30"); }else{ System.out.print("这是 else 语句"); } } }
嵌套的 if…else 语句
if(布尔表达式 1){ 如果布尔表达式 1的值为true执行代码 if(布尔表达式 2){ 如果布尔表达式 2的值为true执行代码 } } public class Test { public static void main(String args[]){ int x = 30; int y = 10; if( x == 30 ){ if( y == 10 ){ System.out.print("X = 30 and Y = 10"); } } } }
switch case 语句
switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。
switch后跟 byte,short,int,char,String
case 后的值,类型要与switch后的值一致后面是冒号。
没有break会击穿case,有会打断switch结果
switch(expression){ case value : //语句 break; //可选 case value : //语句 break; //可选 //你可以有任意数量的case语句 default : //可选 //语句 }
switch case 语句有如下规则:
-
switch 语句中的变量类型可以是: byte、short、int 或者 char ,switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量。
-
switch 语句可以拥有多个 case 语句。每个 case 后面跟一个要比较的值和冒号。
-
case 语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。
-
当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句。
-
当遇到 break 语句时,switch 语句终止。程序跳转到 switch 语句后面的语句执行。case 语句不必须要包含 break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句。
-
switch 语句可以包含一个 default 分支,该分支一般是 switch 语句的最后一个分支(可以在任何位置,但建议在最后一个)。default 在没有 case 语句的值和变量值相等的时候执行。default 分支不需要 break 语句。
public class Test { public static void main(String args[]){ //char grade = args[0].charAt(0); char grade = 'C'; switch(grade) { case 'A' : System.out.println("优秀"); break; case 'B' : case 'C' : System.out.println("良好"); break; case 'D' : System.out.println("及格"); break; case 'F' : System.out.println("你需要再努力努力"); break; default : System.out.println("未知等级"); } System.out.println("你的等级是 " + grade); } }
作业
输出最大值
int x = 1;
int y = 2;
int z = 3;
int max = (x > y ? x : y) > z ? (x > y ? x : y) : z;
1.代码重复两遍
2.背单词
3.记笔记
-