本文目录一览:
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.
其实我讲得也不是非常详细,有兴趣可以仔细看下重载和基本数据类型转型的章节,希望能帮到你。