您的位置:

java三目,java三目运算符例子

本文目录一览:

java中三目运算符?

先学java的叫它,三元运算符;先学c的叫它三目运算符

即( ?: )

如名字表示的三元运算符需要三个操作数。

语法为:条件表达式?表达式1:表达式2。

说明:问号前面的位置是判断的条件,判断结果为bool型,为true时调用表达式1,为false时调用表达式2。

其逻辑为:“如果为真执行第一个,否则执行第二个。”

JAVA三目运算符问题

1、三目运算符 (表达式1)?(表达式2):(表达式3),计算方法是这样的:表达式1是一个逻辑表达式,如果其值为true,则整个表达式的值为表达式2的值,否则为表达式3的值

2、例子:int i = (5 3) ? (5 + 3) : (5 - 3);结果为i = 8.因为5 3为true,所以i = 5 + 3.

3、根据三目运算符的从右到左的结合性,我是这样划分的

year a.year ? 1 : (year a.year ? -1 : (month a.month ? 1 : (month a.month ? -1 : (day a.day ? 1 : (day a.day ? -1 : 0)))));

所以应该从最右边的那个表达式开始计算,结果应该是1、0、-1中的一个值。

以上纯属个人理解。没搞清楚你这个算法到底是什么意义。。。。还有你的compare()方法不能声明为静态。

java怎么用三目运算符,输入任意比较三个数大小,输出中间数?

int comp(int a, int b, int c)

{

return a = b ? (a = c ? (b = c ? b : c) : a) : (a = c ? a : (b = c ? c : b));

}

java实现比较键盘输入的3个数的大小,输出大数的步骤如下:

1、打开Eclipse,创建一个Java工程,在此工程中新建一个Java类;

2、在新建的Java类中利用Scanner类获取键盘输入的三个数,并且分别赋值给变量a,b,c;

3、添加一个比较两个数的方法,将随机两个数进行比较,再让返回的最大值与最后一个值进行比较,即可得出最大值。

具体实现代码如下:

java"import java.util.Scanner;

public class Demo {

public static void main(String[] args) {

int a,b,c;

Scanner scan = new Scanner(System.in);

System.out.println("请输入三个数");

//键盘输入三个数

a = scan.nextInt();

b = scan.nextInt();

c = scan.nextInt();

System.out.println("最大值为:" + getMax(c, getMax(a, b)));

}

//比较方法

private static int getMax(int x,int y){

return x y ? x : y;

}

}

在Java 里什么时候使用三目运算比较好

在需要进行判断的时候使用三目运算比较好,可以替换if--else

三目运算符,又称条件运算符。条件表达式b ? x : y,先计算条件b,然后进行判断。如果b的值为true,计算x的值,运算结果为x的值;否则,计算y的值,运算结果为y的值。

例如:

       // 判断一个数的正负

    public String judge(int a) {

    

        /*if (a  0) {

            return "a是正数";

        } else {

            return "a是负数";

        }*/

        

        // 三目运算符

        String c = a  0 ? "a是正数" : "a是负数";

        

        return c;

    }

此例子里面三目运算符与if--else效果是一样的。

java 三目运算符

其实这主要是JAVA重载和基本数据类型自动转型造成的。

JAVA重载:这里主要调用了println(char x) 和println(int x) 两个方法。

基本数据类型自动转型原则中有一条:有多种类型混合运算时,系统将所有类型转换为大的,然后再进行计算。

自动转型顺序:

byte-short(char)-int-long-float-double.

还有0~65535可以认为是int也可以是char。

System.out.println(true?x:0);此处0被认为是char,所以输出b,倘若把0改为65536,则输出66.

同理

System.out.println(true?x:1111111110);此处1111111110已经大于了65535,所以x被自动转型为int再输出,输出66.

System.out.println(false?i:x);也是同理,将x转换为int,输出 66.

其实我讲得也不是非常详细,有兴趣可以仔细看下重载和基本数据类型转型的章节,希望能帮到你。