PS:在最底层,Java中的数据是通过使用操作符来操作的。
操作符的使用及其优先级
以下为完整代码(1):
package cxcf;
public class Day3 {
public static boolean fun1(int val){
System.out.println("val<1");
return val<1;//true
}
public static boolean fun2(int val){
System.out.println("val<2");
return val<2;//false
}
public static boolean fun3(int val){
System.out.println("val<3");
return val<3;
}
//void 方法的返回值
//Max2 方法名称
//(int a,int b) 形式参数 形参
public static int Max2(int a,int b){
if(a>b){
return a;
//System.out.println(a);
}else{
return b;
//System.out.println(b);//()函数
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
boolean b5=fun1(0)&&fun2(2)&&fun3(1);//短路 与,有一个为false,短路
System.out.println(b5);
boolean b6=fun1(0)||fun2(2)||fun3(1);//有一个为true,短路
System.out.println(b6);
// ! && || 只支持boolean值
boolean b1=true;
boolean b2=false;
if(!b1==true){
System.out.println("is true");
}else{
System.out.println("is false");
}
int[] array={1,2,3,4,5};//[] 声明是一个数组
array[0]=2;//[]属性获取 下标里面的内容
System.out.println(array);
System.out.println(array[0]);
int len=array.length;//方法调用
System.out.println(len);
int a=10;
int b=20;
//Max2(a,b);
int e=Max2(a,b);
System.out.println(e);
int c=30;//= 赋值号
int d=40;//代码冗余
}
}
----------
- 分解代码:
- 1.[ ]、. 、( )的注释 :
(1)array[ ] 声明一个数组;
(2)array[0]=2;属性获取下标里的内容;
(3)“.” array.length;调用方法;
(4) ( )可用来创建一个函数:
public void int Max2(int a,int b) - 2.逻辑操作符“与” && “或” || “非”!,能根据参数的逻辑关系,生成一个布尔值,且只可应用布尔值, :
(1)短路
当使用逻辑操作符时,会遇到一种现象,即一旦能够确定某个表达式的值,就不再计算表达式余下部分了。
boolean b5=fun1(0)&&fun2(2)&&fun3(1);//短路 与,若有一个为false,则短路,后边不再输出;
boolean b6=fun1(0)||fun2(2)||fun3(1);//短路或,若有一个为true,
后边不再计算输出;
输出结果:
以下为完整代码(2):
package cxcf;
public class Day31 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// ++ 后置++ 前置++
int a1=10;
a1++;
++a1;//单个写没有任何区别
int a2=a1++;//tmp=a2; a3=tmp; a2+1;
int a4=++a2;//a2+1 a4
System.out.println(a2);
System.out.println(a4);
//算余数
System.out.println(10%3);
System.out.println(-10%3);
System.out.println(-10%-3);//取商取在绝对值以内
System.out.println(10%-3);
System.out.println("========");
float f1=5/2;
float f2=(float)5.0/2;
float f3=(float)5/2;
float f4=5/(float)2;
System.out.println(f1);//5是int类型,取整 2.0
System.out.println(f2);//2.5
System.out.println(f3);//2.5
System.out.println(f4);//2.5
short sh=1;
short sh2=(short)(sh+1);
sh+=1;//sh=sh+1;-= *= /=
//instanceof 比较类型
}
}
- 分解代码:
- 算数操作符:
加减乘除“+ - * / ”;
算余数“%”;
(10%3)、(-10%3)、(-10%-3)、(10%-3)这几种情况输出分别为“1 、-1、 -1 、1”;
赋值号,将符号后的值赋给前面“=”;
“+=、-=、*=、/=、%=”,a+=b;相当于a=a+b,其余同理; 自动递增和递减“++ –”:
a1++;和++a1;单个写没有任何区别;
int a2=a1++;先赋值在加减;
int a4=++a2;先加减再赋值。按位操作符
“&”按位与:遇0为0;
“|”按位或:遇1为1;
“~”按位非:一元操作符;
“^”按位异或:同为0,异为1;
温馨提示:按位操作符可与(=)联合使用,“&=、|=、^=”,这样是合法的,由于”~”是一元操作符,所以不能与(=)联用。移位操作符:
“<<”左移(低位补零):
“>>”右移(若高位符号为为0,高位插入0,为1,则高位插入1);
“>>>”无符号右移操作符(无论正负,高位插入0);
补充:易出错点:
float f1=5/2; 输出为2,都是int类型;
float f2=(float)5.0/2; 输出为2.5;
float f3=(float)5/2;输出为2.5;
float f4=5/(float)2;输出为2.5;
short sh=1;
short sh2=(short)(sh+1);1是int类型,必须进行强转,否则会报错。