运算符
Hello!CSDN的小伙伴们。
这里是老汉的Java成长之路专栏,感兴趣的话就关注老汉并订阅本系列的专栏一起学习吧。
前言
在Java的编程中,运算符的运用至关重要,学习并熟练掌握运算符的使用是Java基础语法学习中的主要任务,那么本期老汉为各位介绍一下Java运算符的形式及其作用。(运算符全部在英文输入法状态下进行编写)
一、算术运算符
算术运算符主要用于进行基本的算术运算,如加法、减法、乘法和除法等。
Java中的算术运算符如下:
加法、减法、乘法、除法、求余数和我们正常的数学计算基本没有什么区别,老汉在这里就不做过多解释了。
++:单目运算符,在前表示先自加1后执行,在后表示先执行后自加1;
- -:单目运算符,在前表示先自减1后执行,在后表示先执行后自减1;
解释:单目运算符:只对一个表达式进行操作,依次类推为双目、三目运算符。
示例如下:
public static void main(String[] args)
{
int i,num;
i=3;
num=i++;
System.out.println("num="+num+",i="+i);//num=3,i=4
i=3;
num=++i;
System.out.println("num="+num+",i="+i);//num=4,i=4
i=3;
num=i--;
System.out.println("num="+num+",i="+i);//num=3,i=2
i=3;
num=--i;
System.out.println("num="+num+",i="+i);//num=2,i=2
}
二、赋值运算符
赋值运算符主要用于对变量进行赋值运算;
格式:变量=表达式;
例如上述代码的 i=3;。
注意:赋值运算符是从右往左运算的,且赋值运算符的左边不能是常量!!!
赋值运算符与算术运算符可结合为复合赋值运算符,如下表所示:
三、关系运算符
关系运算符主要用于判断两个数据的关系,其结果为一个布尔值。
关系运算符示例如下:
解释:
1.使用字符进行关系运算,是以ASCII值进行关系运算;
2.浮点数与整数进行比较时,看数值即可。
例如:float f=2.0;int i=2;f==i;结果为true。
四、条件结构
学习了一些基本运算符,下面我们可以结合条件结构进行一些简单操作,首先跟着老汉来学习一下什么是条件结构。
1.if语句
格式:
if(条件)
{
<语句块>
}
条件为布尔类型,true则执行语句块,false则不执行语句块。
2.if-else语句
格式:
if(条件)
{
<语句块>
}
else
{
<语句块>
}
if条件为true则执行if语句块,false则执行else语句块。
注意:if语句可单独写,else不可单独写,必须与if配对!!!
解释:在对于只有一条语句而言的情况下可以不使用{},即 if(条件)语句,但是对于日常编写,不管是否为一条语句,还是建议各位养成书写{}的习惯。
示例如下:
public static void main(String[] args)
{
//题目:随机输入一个数值判断其是偶数还是奇数,并将结果输出。
int num;
System.out.println("请随机输入一个数");//标注输入提示
Scanner scanner=new Scanner(System.in);//需在类外导入(输入)import java.util.Scanner;才能使用
num=scanner.nextInt();//从键盘读取一个数值给num,该数值必须是整型
if(num%2==0)//num与2的余数为0时,为偶数,反之为奇数
{
System.out.println(num+"是偶数");
}
else//if条件不符合执行else
{
System.out.println(num+"是奇数");
}
}
Scanner scanner=new Scanner(System.in);
num=scanner.nextInt();
是从键盘输入一个整型数值为num的操作,需要多敲多练。
五、逻辑运算符
逻辑运算符主要用于将两个或多个表达式连接成一个或使表达式反转。
逻辑运算符示例如下:
1.逻辑“与”运算符
连接多个表达式,其中至少有一个值为false则返回值为false,全都为true则返回值为true。
&运算符:
将每条表达式的运行结果都计算出来后,再进行逻辑与运算;
&&运算符:
&&运算符又称短路运算符,如果前一个表达式的值就能决定与运算表达式最后的结果,后面的表达式就不在计算了。
示例如下:
public static void main(String[] args)
{
int i=3;
boolean b=(4>6)&((i++)<2);
System.out.println("i="+i+",b="+b);//i=4,b=false
i=3;
b=(4>6)&&((i++)<2);
System.out.println("i="+i+",b="+b);//i=3,b=false
}
2.逻辑“或”运算符
连接多个表达式,其中至少有一个值为true则返回值为true,全都为false则返回值为false。
|运算符:
将每条表达式的运行结果都计算出来后,再进行逻辑或运算;
||运算符:
||运算符又称短路运算符,如果前一个表达式的值就能决定与运算表达式最后的结果,后面的表达式就不在计算了。
示例如下:
public static void main(String[] args)
{
int i=3;
boolean b=(4<6)|((i++)<2);
System.out.println("i="+i+",b="+b);//i=4,b=ture
i=3;
b=(4<6)||((i++)<2);
System.out.println("i="+i+",b="+b);//i=3,b=true
}
3.逻辑“非”运算符
!运算符
对原条件值取反,原条件为true则取false,为false则取true。
例如:!(4<6),结果为false。
六、条件运算符
Java中的条件运算符是三目运算符;
格式:布尔表达式?表达式1:表达式2
当布尔表达式值为true时,则返回表达式1,否则返回表达式2.
示例如下:
public static void main(String[] args)
{
//题目:随机输入两个数值判断其最大值,并将结果输出。
int num1,num2,max=0;
System.out.println("请随机输入两个数");//标注输入提示,两数以空格隔开
Scanner scanner=new Scanner(System.in);//需在类外导入(输入)import java.util.Scanner;才能使用
num1=scanner.nextInt();//从键盘读取一个数值给num1,该数值必须是整型
num2=scanner.nextInt();//从键盘读取一个数值给num2,该数值必须是整型
max = (num1 > num2) ? num1 : num2;//去出最大数赋值给max
System.out.println("max="+max);
}
注意:需要有变量接收条件运算符产生的结果
七、位运算符
位运算符分别为:按位与(&)、按位或(|)、按位异或(^)、取反(~)、左移(<<)、右移(>>)、无符号右移(>>>)。
解释:在Java的日常编写中,位运算符几乎不进行使用,在此我们稍微了解一下即可。
八、运算符的优先级
在c语言的学习当中,我们了解到运算符的使用严格区分优先级,优先级高的先执行,依次往低的执行下去,那么Java运算符的优先级如下所示:
解释:在使用逻辑不明时,可多使用()进行优先级区分。
九、操作练习
对运算符进行了初步了解,下面跟着老汉来练习一道程序操作题,将我们的知识运用起来吧!
题目:用if-else语句判断输入年份是否为闰年。
闰年判断规则:能被4整除但不能被100整除的年份,或者能被400整除的年份
(四年一闰,百年不闰,四百年再闰)
答案示例如下:
public static void main(String[] args)
{
System.out.println("请输入年份:");
Scanner scanner=new Scanner(System.in);
int year= scanner.nextInt();;
if(((year%4==0)&(year%100!=0))|(year%400==0))//采用&或&&,|或||都可以,为避免短路现象最好采用&和|。
{
System.out.println(year+"是闰年!");
}
else
{
System.out.println(year+"不是闰年!");
}
}
本期小结
到这里我们就结束了本期关于运算符的学习,对于优先级的判断以及运算符的使用,老汉在这里建议各位多进行一些简单的程序题编写,以便于我们更好的熟记它。最后,希望大家与老汉一同努力,强大的个人能力是未来最宝贵的东西,感谢各位的观看。