精华内容
下载资源
问答
  • Java 三目运算符

    2013-07-15 15:10:52
    Java 三目运算符
  • java三目运算符

    2017-06-30 21:58:03
    java三目运算符

    java三目运算符

    对于有些选择分支结构,可以使用简单的条件运算符来代替.如:

    引用
    if(a<b)
        min=a;
    else
        min=b;

    可以用下面的条件运算符来处理

    min=(a<b)?a:b;


    其中"(a<b)?a:b"是一个"条件表达式",它是这样执行的:如果a<b为真,则表达式取a值,否则取b值.

    条件运算符由两个符号组成"?"和":",要求有3个操作对象,所以也叫它三目运算符,它是C语言中唯一的三目运算符.它的一般形式为:

    引用
    表达式1?表达式2:表达式3;

    以下是关于条件运算符的几点说明:

    (1) 通常情况下,表达式1是关系表达式或逻辑表达式,用于描述条件表达式中的条件,表达式2和表达式3可以是常量,变量或表达式.例如:

    引用

    (x==y)?'Y':'N'
    (d=b*b-4*a*c)>=0?sqrt(d):sqrt(-d)
    ch=(ch>='A'&&ch<='Z')?(ch+32):ch



    以上均为合法的条件表达式.

    (2) 条件表达式的执行顺序为:先求解表达式1,若值为非0,表示条件为真,则求解表达式2,此时表达式2的值就作为整个条件表达式的值;若表达式1的值为0,表示条件为假,则求解表达式3,表达式3的值就是整个条件表达式的值.例如:

    引用

    (a>=0)?a:-a


    执行结果是a的绝对值.

    (3) 在程序中,通过把条件表达式的值直接赋予某个变量.例如:

    引用
    min=(a<b)?a:b

    执行结果就是将条件表达式的值赋予变量min,即将a和b二者中较小的数赋给min.

    (4) 条件表达式的优先级别仅高于赋值运算符,而低于前面遇到过的所有运算符.因此,min=(a<b)?a:b括号可以不要,可直接写成,min=a<b?a:b如果有x<y?x+1:y-1等效于x<y(x+1):(y-1)而不等效于(x<y?x+1:y)-1

    (5) 条件运算符的结合方向为"自右至左".

    (6) 条件表达式允许嵌套,即允许条件表达式中的表达式2和表达式3又是一个条件表达式.例如:

    引用
    x>0?1:x<0?-1:0

    上述条件表达式中,表达式3部分又是一个条件表达式.根据条件表达式的结合性,上述条件表达式等价于:

    引用
    x>0?1:(x<0?-1:0)

    其作用是判断x的符号情况.当x为正数时,该条件表达式的值为1;当x为负数时,该条件表达式的值为-1;当x为0时,该条件表达式的值为0.

    (7) 条件表达式不能取代一般的if语句,仅当if语句中内嵌的语句为赋值语句(且两个分支都给同一变量赋值)时才能代替if语句.例如:

    引用
    if(a%2==0)
        printf("even/n");
    else
        printf("odd/n");

    不能写成:

    引用
    (a%2==0)?printf("even/n"):printf("odd/n");

    但可以用下面语句代替:

    引用
    printf("%s/n",(a%2==0?"even":"odd");

    该语句的作用是:若a为偶数,输出even;若a为奇数,输出odd.

    (8) 表达式1,表达式2,表达式3的类型可以不同.此时条件表达式的值的类型为它们中较高的类型.例如:

    引用
    main()

         char c1,ch;
         ch=getchar();
         c1=ch<='Z'&&ch>='A'?' at ':ch;
         putchar(c1);
    }

    该程序的作用是从键盘输入任意一个字符,判别它们是否大写字母,如果是,输出一个@;否则按原样输出 dot

    上例中,程序第6行是关键语句,该语句实现输入字符的判断,选择与更换工作.其执行过程为:先由此语句中的赋值号右侧的条件运算符对输入的字符进行判断和选择,若ch>='A'&&ch<='Z'成立,说明ch是大写英文字母,此时选'@';否则仍选原字符ch,然后把选择的结果赋值给原变量ch dot

    展开全文
  • Java三目运算符

    2016-12-09 15:08:21
    Java三目运算符

    问题

    在使用三目运算符时,没有接收返回值,无法通过编译。

    代码

    true?1:0;

    即使是像上述那种简单的运算,如果不接受返回值同样会报错!报错内容为:
    Type mismatch: cannot convert from int to boolean
    如果写成:

    true?true:false;

    则该行不会报错,但是上一行会报错,报错信息为:
    Syntax error on token “;”, assert expected after this token

    总结

    三目运算符的使用必须接受该运算所产生的返回值。

    ···?···:···;和if···else···的比较

    个人觉得三目运算符的结构更为紧凑,能够使代码更加简洁美观,但是使用三目运算符和使用if···else···的方式并不会有多大的性能差别,本次发现三目运算符必须接受其返回值,这一点算是三目运算符和if···else···的一点小小的差别!

    展开全文
  • JAVA 三目运算符

    2019-07-16 12:20:05
    JAVA 三目运算符三目运算符格式案例 三目运算符 三目运算符,又称条件运算符,是计算机语言(c,c++,java等)的重要组成部分。它是唯一有3个操作数的运算符,所以有时又称为三元运算符。一般来说,三目运算符的结合性...

    JAVA 三目运算符

    三目运算符

    三目运算符,又称条件运算符,是计算机语言(c,c++,java等)的重要组成部分。它是唯一有3个操作数的运算符,所以有时又称为三元运算符。一般来说,三目运算符的结合性是右结合的。其实三目运算符可以看作是简写的if判断语句。

    格式

    比较表达式?表达式1:表达式2;

    根据比较表达式的计算返回一个true或者false。
    	如果是true,就把表达式1作为结果。
    	如果是false,就把表达式2作为结果。
    

    案例

    1.比较两个数据是否相等

    class OperatorDemo {
    	public static void main(String[] args) {
    		int x = 100;
    		int y = 200;
    		
    		
    		//判断是否相等
    		boolean flag = (m == n);
    		System.out.println(flag);
    		
    		//判断大小
    		int z = ((x > y)? x: y);
    		System.out.println("z:"+z);
    	}
    }
    

    运行结果:
    在这里插入图片描述
    2.取最大值

    class OperatorTest {
    	public static void main(String[] args) {
    		//获取两个整数中的最大值
    		int x = 100;
    		int y = 200;
    		
    		int max = (x > y? x: y);
    		System.out.println("max:"+max);
    		System.out.println("--------");
    		
    		//获取三个整数中的最大值
    		int a = 10;
    		int b = 30;
    		int c = 20;
    		
    		//分两步:
    		//A:先比较a,b的最大值
    		//B:拿a,b的最大值在和c进行比较
    		int temp = ((a > b)? a: b);
    		//System.out.println(temp);
    		int max1 = (temp > c? temp: c);
    		System.out.println("max1:"+max1);
    		
    		//一步搞定
    		//int max2 = (a > b)?((a > c)? a: c):((b > c)? b: c);
    		//这种做法不推荐。
    		//int max2 = a > b?a > c? a: c:b > c? b: c;
    		//System.out.println("max2:"+max2);
    		System.out.println("--------");
    		
    		//比较两个整数是否相同
    		int m = 100;
    		int n = 200;
    		
    		//boolean flag = (m == n)? true: false;
    		boolean flag = (m == n);
    		System.out.println(flag);
    	}
    }
    

    运行结果
    在这里插入图片描述

    展开全文
  • JAVA三目运算符

    2020-04-27 16:42:08
    该运算符使用要有三个操作数,因此称其为三目运算符。 使用条件运算符的一般语法结构为: result = <expression> ? <statement1> : <statement3>; 其中,expression 是一个布尔表达式。当 ...
    开发工具与关键技术:MyEclipse 10
    撰写时间:2020年04月26日
    

    该运算符使用要有三个操作数,因此称其为三目运算符。
    使用条件运算符的一般语法结构为:

     result = <expression> ? <statement1> : <statement3>; 
    

    其中,expression 是一个布尔表达式。当 expression 为真时,执行 statement1,
    否则就执 行 statement3。此三元运算符要求返回一个结果,因此要实现简单的二分支程序,
    即可使 用该条件运算符。
    下面是一个使用条件运算符的示例。

     int x,y,z; 
     x = 6,y = 2; 
     z = x>y ? x-y : x+y; 
    

    在这里要计算 z 的值,首先要判断 x>y 表达的值,如果为 true,z 的值为 x-y;
    否则 z 的值 为 x+y。很明显 x>y 表达式结果为 true,所以 z 的值为 4。

    技巧:可以将条件运算符理解为 if-else 语句的简化形式,在使用较为简单的表达式时,
    使 用该运算符能够简化程序代码,使程序更加易读。

    在使用条件运算符时,还应该注意优先级问题,例如下面的表达式:

     x>y ? x-=y : x+=y; 
    

    在编译时会出现语法错误,因为条件运算符优先于赋值运算符,上面的语句实际等价于:

     (x>y ? x-=y : x)+=y; 
    

    而运算符“+=”是赋值运算符,该运算符要求左操作数应该是一个变量,因此出现错误。
    为 了避免这类错误,可以使用括号“0”来加以区分。例如,下面是正确的表达式。

     (x>y) ? (x-=y): (x+=y);
    

    在程序中声明 3 个变量 x、y、z,并由用户从键盘输入 x 的值,
    然后使用条件运算符向变 量 y 和变量 z 赋值。
    下面我们运行一下示例:代码如下:

    public class test4 {      
    		public static void main(String[] args) { 
    			int x, y, z; // 声明三个变量 
    			System.out.print("请输入一个数:"); 
    			Scanner input = new Scanner(System.in); 
    			x = input.nextInt(); // 由用户输入 x 的值 
    			// 判断 x 的值是否大于 5,如果是 y=x,否则 y=-x 
    			y = x > 5 ? x : -x; 
    			// 判断 y 的值是否大于 x,如果是 z=y,否则 z=5 
    			z = y > x ? y : 5; 
    			System.out.printf("x=%d \n", x); 
    			System.out.printf("y=%d \n", y); 
    			System.out.printf("z=%d \n", z); 
    	}
    

    保存程序并运行,
    运行效果如下:

    键盘输入58,如下:
    在这里插入图片描述

    键盘输入4,如下:
    在这里插入图片描述

    在该程序中,首先输入 x 的值为 58,然后判断 x 的值是否大于 5,显然条件是成立,
    则 y 的值为 x,即 y=58。接着判断 y 的值是否大于 x,因为 y 的值和 x 的值都为 58,
    所以该条 件是不成立的,则 z=5。再次输入 x 的值为 4,然后判断 x 的值是否大于 5,不成立,
    则 y=-4;接着判断 y 的值是否大于 x,不成立,则 z=5。

    展开全文
  • java 三目运算符

    2017-02-07 10:26:00
    三目运算符 可以内嵌使用。 level=(input>90)?"Class A":(input>60)?"Class B":"Class C";;  转载于:https://www.cnblogs.com/kakaisgood/p/6372917.html
  • Java 三目运算符细节详解 @author:Jingdai @date:2020.09.24 看到标题你肯定觉得三目运算符有什么好讲的,不是很简单嘛。我之前也是这么认为的,直到今天刷LeetCode遇到了一点问题,发现还是有些细节自己不知道的,...
  • java三目运算符表达式 Java应用程序通过评估表达式来处理数据, 表达式是文字,方法调用,变量名和运算符的组合。 评估表达式通常会产生一个新值,该值可以存储在变量中,用于决策等。 在本教程中,您将学习如何为...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,570
精华内容 628
关键字:

java三目运算符

java 订阅