A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 11415545 初级黑马   /  2012-6-9 19:28  /  1629 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 11415545 于 2012-6-9 21:22 编辑

  
我是一天JAVA学习基础的孩纸。  
今天学习了毕向东老师讲的“基础视频教程第02天”中的所有视频课程内容。
在第十七讲中,
         b=(a>1)? System.out.println("haha"):200; //直接打印haha到屏幕,没有数值给b
  这句代码怎样改都不能实现。提示“? ”出错了。我将“? ”换成"?"也不行。
  如果是用if、else代码就能实现
  if(a>1)
  System.out.println("haha");
else
  b=200;
  如果我想用一行代码,三元运算符执行并且能够实现我想打印的文字。怎样做。
忘了贴上编辑器的赋值语句。语句是这样的。
int a=9,b;
b=(a>1)?100:200;
if(a>1)
  b=100;
else
  b=200;//如果只是一句代码,则不需{}
//如果a>1b=100,否则b=200。
/*
if else 结构 简写格式: 变量=(条件表达式)?表达式1:表达式2;
三元运算符:
好处:可以简化if else代码。
弊端:因为是一个运算符,所以运算玩必须要有一个结果。
*/
b=(a>1)? System.out.println("haha"):200; //错的不能执行。
欢迎大家访问我的日记:http://htm321.blog.163.com/

5 个回复

倒序浏览
本帖最后由 wyl530274554 于 2012-6-9 20:30 编辑

b=(a>1)? System.out.println("haha"):200;    //这是你的代码,没加注释,不好意思{:soso_e110:}
三元运算符 必须有结果
就是b最终必须有个值,而不能是输出语句。

试试这样
  1. public class Demo{
  2.         public static void main(String args[]){
  3.                 int a = 3;
  4.                 System.out.println((a>1)?"haha":200);
  5.         }
  6. }
复制代码
回复 使用道具 举报
b=(a>1)? System.out.println("haha"):200
?:三元运算符中必须有确定的返回值。 System.out.println("haha")无返回值,所以就会出错了。毕老师说的,?:有简化书写的好处,但也有局限性,就是要有返回值,有利就有弊。
回复 使用道具 举报
哈哈,b都没有声明类型
回复 使用道具 举报
wyl530274554 发表于 2012-6-9 19:37
b=(a>1)? System.out.println("haha"):200;
三元运算符 必须有结果
就是b最终必须有个值,而不能是输出语 ...

大哥,你的这句代码也不能执行。
回复 使用道具 举报
付信榕 发表于 2012-6-9 19:39
b=(a>1)? System.out.println("haha"):200
?:三元运算符中必须有确定的返回值。 System.out.println("hah ...


哦。原来如此。难怪我怎么改,改来改去。结果。还是不能执行。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马