/**
* 面向过程编程-ifelse结构
*
* @author 攀博课堂(www.pbteach.com)
*
*/
public class IfDemo2 {
public static void main(String[] args) {
int a = 10;
int b = 20;
if (a == b) {
System.out.println("a等于b");
} else {
System.out.println("a不等于b");
}
}
}
我们前面讲解过三目运算符,它根据比较判断后,给出的也是两个结果,所以,这种情况和ifelse结构很相似。
看下边的例子:
int m1 = (a > b)? a: b;
如果a大于b则(a > b)? a: b整个表达式的值为a,否则为b。 使用if语句也可以实现该功能:
int m1=0;
if(a>b){
m1 = a;
}else{
m1 = b;
}
三目运算符的操作可以使用if语句改进,反之不成立!
为什么反之不成立?
int a = 10;
int b = 20;
if(a == b) {
System.out.println("a等于b");
}else {
System.out.println("a不等于b");
}
如上程序代码则不能用三目运算符号改进:
a==b?System.out.println("a等于b"):System.out.println("a不等于b")
上边的三目运算符错误,因为三目运算符是一个运算符,必须要求有一个结果返回,而输出语句却不能作为一个返回结果。
例子,获取两个数的最大数:
/**
* 面向过程编程-ifelse结构-获取两个数据的最大值
*
* @author 攀博课堂(www.pbteach.com)
*
*/
public class IfDemo3 {
public static void main(String[] args) {
int a = 10;
int b = 20;
//用if语句实现
int max1;
if(a > b) {
max1 = a;
}else {
max1 = b;
}
System.out.println("最大数:"+max1);
//用三目运算符改进
int max2 = (a > b)? a: b;
System.out.println("最大:"+max2);
}
}