Java基础-赋值运算符Assignment Operators与条件运算符Condition Operators
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.赋值运算符
表达式的数据类型要与左边变量的类型兼容
1>.常规赋值
/*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ public class Assignment{
public static void main(String[] args){
//1>.赋值
int x = 123; x = 123 + 5; int y = x / 2; // int z = 3.1415926; //类型不兼容。 System.out.println(x); //
System.out.println(y); //
}
}
2>.符合赋值,自反赋值
/*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ public class Assignment2{
public static void main(String[] args){
//复合赋值隐含着强类型转换 byte a = 10; a += 5; //相当于 a = (byte)(a + 5) System.out.println(a); //
}
}
二.条件运算符
条件运算符也叫三元运算符。语法格式:“(条件)?表达式1:表达式2”,如果条件成立,整个表达式的值就是表达式1的值,如果条件不成立,整个表达式的值就是表达式2的值。
/*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ public class Demo{
public static void main(String[] args){ int a = 10;
int b = 20;
int result = a > b ? a:b; /**
如果a > b 成立,就把a的值赋值给变量result;
如果a > b不成立,就把b的值赋值给变量result;
就是把a和b中较大的保存到变量result中。
*/ System.out.println( result ); String str = a > b ? "a较大":"b较大";
System.out.println( str ); int x = 100;
int y = 20;
int z = 50; // int max = (x>y?x:y)>z?(x>y?x:y):z; //不建议这样玩,可以用来跟小白装逼用,哈哈~但是可读性太差。 int maxAB = x > y ? x:y; int max = maxAB > z ? maxAB:z; System.out.println(max); }
}
如果让你比较三个数字的大小,并从键盘输入的咋办呢?这个时候我们就得导入一个类啦,来帮助我们解决这个问题。
/*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ import java.util.Scanner; public class compare {
public static void main(String[] args){
/**
从键盘输入两个数,显示其中的最大值,要求使用if-else结构.
*/
Scanner Input = new Scanner(System.in); System.out.print("请输入第一个数字:>>>");
int num1 = Input.nextInt(); System.out.print("请输入第二个数字:>>>");
int num2 = Input.nextInt(); System.out.print("请输入第三个数字:>>>");
int num3 = Input.nextInt(); //方案一:
// if(num1 > num2){
// if (num1 > num3){
// System.out.println(num1);
// }else{
// System.out.println(num3);
// } // }else{
// if (num2 > num3){
// System.out.println(num2);
// }else{
// System.out.println(num3);
// }
// } //方案二:(推荐使用)
int res = (num1 > num2)?num1:num2;
int max = (res > num3)?res:num3;
System.out.println(max); //方案三:(不推荐使用,no 作 no die) // System.out.print("请输入第一个数字:>>>");
// int a = Input.nextInt(); // System.out.print("请输入第二个数字:>>>");
// int b = Input.nextInt(); // System.out.print("请输入第三个数字:>>>");
// int c = Input.nextInt();
// System.out.println("最大值是:" + ((a > b)?(a>c?a:c):(b>c?b:c))); }
}