标签:强制类型转换 强制 条件 提升 优先级 ati world sys hello
运算符主要是指进行特定操作的符号。如:+。对于字符串String类型来说,加号代表字符串连接操作。并且任何数据类型和字符串进行连接操作,结果都会变成字符串。
可以看一下代码示例:
public class TestOperator {
public static void main(String[] args){
//两个常量之间的数学运算
System.out.println(20+30);
//两个变量之间的数学运算
int a = 20;
int b = 5;
System.out.println(a-b);
//并且变量和常量之间可以混合使用
System.out.println(a*10);
int x = 10;
int y = 3;
//因为x和y都是整数,除数的结果也是整数。所以结果会进行截断。
int result1 = x/y;
System.out.println(result1);
int result2 = x%y;
System.out.println(result2);
//浮点数也可以进行运算
double result3 = x + 2.5;
System.out.println(result3);
}
}
算术运算符还有两种特殊的运算符,就是自增运算符(++)、自减运算符(--)。
基本含义:
自增运算符让变量的值增加1,自减运算符是让变量的值减1。
使用格式:
写在变量名称前,或者写在变量名称之后。如:++num或num++。
使用方式:
在混合使用的时候,有重大区别:
A. 如果是前++,那么变量马上加1,然后拿着结果进行使用。可以称作,先加后用。
B. 如果是后++,那么首先使用变量本来的数值,然后在让变量加1,可以称作,先用后加。
注意事项:
只有变量才能使用自增、自减运算符,常量不可用。
请看以下示例:
public class TestPlus {
public static void main(String[] args) {
//字符串类型的变量基本使用
//数据类型 变量名称 = 数据值;
String str1 = "Hello";
System.out.println(str1);
System.out.println("Hello" + "World");
String str2 = "Java";
System.out.println(str2 + 20);
//优先级问题
System.out.println(str2 + 20 + 30);
//自增自减
int num1 = 10;
System.out.println(num1);
++num1;//单独使用,前++
System.out.println(num1);
num1++;//单独使用,后++
System.out.println(num1);
int num2 = 20;
//混合使用,前++,变量马上变为21,然后打印输出
System.out.println(++num2);
System.out.println(num2);
int num3 = 30;
//混合使用,后++,先使用变量原值30,打印输出,然后变量加1,变为31.
System.out.println(num3++);
System.out.println(num3);
int num4 = 40;
//混合使用,前--,变量马上变为39,然后赋值result1
int result1 = --num4;
System.out.println(result1);
System.out.println(num4);
int num5 =50;
//混合使用,后--,先使用变量原值50,赋值result2,然后变量减1,变为49.
int result2 = num5--;
System.out.println(result2);
System.out.println(num5);
int x = 10;
int y = 20;
int result3 = ++x + y--;
System.out.println(result3);
System.out.println(x);
System.out.println(y);
}
}
二、 赋值运算符
赋值运算符分为两种:
一是基本赋值运算符:就是一个等号“=”,代表将右侧的数据交给左侧的变量。
二是复合赋值运算符:
+=: 例如 a += 1 相当于 a = a + 1
-=: 例如 b -= 4 相当于 b = b - 4
=: 例如 c = 5 相当于 c = c * 5
/=: 例如 d /= 6 相当于 d = d / 6
%=: 例如 e %= 7 相当于 e = e % 7
注意事项:
复合赋值运算符其中隐含了一个强制类型转换。
请看示例:
public class TestEqual{
public static void main(String[] args) {
int a = 10;
a += 5;
System.out.println(a);
int x = 10;
x %= 3;
System.out.println(x);
byte num = 30;
//num += 5 相当于 num = num +5;
//也就是byte = byte + int;
//右边表达式会先把byte自动转换称为int,最后进行强制转换成byte.
//所以复合赋值运算符帮我们做了一个强制类型转换
num += 5;
System.out.println(num);
}
}
三、 比较运算符
== 比较符号两边数据是否相等,相等结果就是true。
< 比较符号左边的数据是否小于右边的数据,如果小于,结果就是true。
比较符号左边的数据是否大于右边的数据,如果大于,结果就是true。
<= 比较符号左边的数据是否小于等于右边的数据,如果小于等于,结果就是true
= 比较符号左边的数据是否大于等于右边的数据,如果大于等于,结果就是true。
!= 比较符号两边数据是否相等,不相等结果就是true。
注意事项:
public class TestCompare {
public static void main(String[] args) {
System.out.println(10>5);
iint num1 = 10;
int num2 = 15;
System.out.println(num1 < num2);
System.out.println(num1 >= 30);
System.out.println(num2 <= 50);
System.out.println(num2 <= 15);
System.out.println(num2 == 15);
System.out.println(num1 != 15);
//java不支持连着进行比较,可以使用下节的逻辑比较符进行。
//System.out.println(4 < num1 < 20);
}
}
四、 逻辑运算符
与 && 全都是true,才是true; 否则就是false
或 || 至少一个是true, 就是true; 全都是false,才是false
非 ! 本来是true,变成false;本来是false,变成true。
注意事项:
格式: 数据类型 变量名称 = 条件判断 ? 表达式A : 表达式B
流程:
首先判断条件是否成立:
如果成立为true,那么将表达式A的值赋给左侧的变量
如果不成立为false,那么将表达式B的值赋给左侧的变量
注意事项:
三元运算符的结果必须被使用。
public class TestThreeVar {
public static void main(String[] args) {
int a = 10;
int b = 20;
int max;
//判断a>b是否成立,如果成立将a的值赋给max,如果不成立将b的值赋给max.
max = a > b ? a : b;
System.out.println(max);
//两个表达式的值必须同时符合左侧数据类型的要求。
//int result = 3 > 4 ? 2.4 : true;
//并且三元表达式不能直接使用
//a > b ? a : b
}
}
标签:强制类型转换 强制 条件 提升 优先级 ati world sys hello
原文地址:http://blog.51cto.com/534915/2337634