黑马程序员技术交流社区
标题:
关于三元运算符格式和 i f 语句简写格式的问题
[打印本页]
作者:
emos-c
时间:
2013-6-1 16:59
标题:
关于三元运算符格式和 i f 语句简写格式的问题
本帖最后由 emos-c 于 2013-6-3 16:38 编辑
我刚开始看毕老师的java基础视频教程,在三元运算符上碰到一个问题解决不了,请大家帮帮忙。
1. 毕老师在讲解三元运算符时的格式
(条件表达式)?表达式1:表达式2;
我理解的三元运算符格式
变量=(条件表达式)?数值1:数值2;
请问:(1)“变量=”是必须的吗?如果不是,可以写一个实例吗?
(2) 表达式1和表达式2除了是数值还可以是什么?可以写一个实例吗?
2.毕老师讲解的if else结构简写格式
变量=(条件表达式)?表达式1:表达式2;
请问:毕老师说这里的“变量=”不是一定要加,但是代表一些含义,却没有具体解释。可是如果我不写上“变量=”,就会编译失败。能写一个不带“变量=”的实例吗?
作者:
emos-c
时间:
2013-6-1 17:00
这是我自己测试的结果
class sanyuan
{
public static void main(String[] args)
{
int a=3,b,c;
//b=(a>1)?100:200;//这句话编译可以通过
//(a>1)?b=100:b=200;//编译失败,提示需要变量
//c=(a>1)?b=100:b=200;//编译失败,提示需要变量
System.out.println(b=(a>1)?100:200);//编译通过,打印结果100
System.out.println((char)(b=(a>1)?67:68));//编译通过,打印结果C
}
}
作者:
、__WSD吴少东
时间:
2013-6-1 18:48
class Demo
{
public static void main(String[] args)
{
int a = 10;
int b = 19;
System.out.println((a>b)?true:false);
}
}
复制代码
这个就是一个最基本的不用变量的方式,一般来说,不用变量是一种缩写..三元运算符,是一种判断,判断后的结果需要一个东西来存储,或者,直接将它用掉...
不用掉就要存储起来,因为你需要这个结果,如果不要这个结果,那你说说,干嘛还要运算,还要进行比较?...所以编译不通过也是情理之中的...
作者:
郑锐
时间:
2013-6-1 20:45
我是这样理解的,这个叫做三元运算符,既然是运算就一定要有结果的,有结果肯定要定义一个变量来接受这个结果。
毕老师说的是,有些ifelse可以简写成这种格式,但是简写一定会有弊端,这个弊端就是必须要有结果,因为他是运算符。
作者:
张俊生
时间:
2013-6-1 22:25
class sanyuan
{
public static void main(String[] args)
{
int a=3,b,c;
//b=(a>1)?100:200;//这句话编译可以通过
// b=(a>1)?b=100:b=200;//编译失败,提示需要变量 //这句话里你后面那两个b=不能写
//c=(a>1)?b=100:b=200;//编译失败,提示需要变量 //这句话里你后面那两个b=不能写
System.out.println((a>1)?100:200);//编译通过,打印结果100
System.out.println((char)(b=(a>1)?67:68));//编译通过,打印结果C
}
}
注:(a>1)?100:200 这是个值需要变量来接收,单独存在就不是语句
b=(a>1)?b=100:b=200;这句你后面那两个b=不能写
作者:
袁梦希
时间:
2013-6-2 02:26
加油大家 我看有金币没
作者:
曹睿翔
时间:
2013-6-2 10:32
如果问题已经解决,再次编辑,修改主题类型为已解决,方便大家查看
否则继续追问
作者:
emos-c
时间:
2013-6-3 16:29
、__WSD吴少东 发表于 2013-6-1 18:48
这个就是一个最基本的不用变量的方式,一般来说,不用变量是一种缩写..三元运算符,是一种判断,判断后的结 ...
谢谢,我明白了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2