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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 熊鑫 中级黑马   /  2013-4-17 11:36  /  2039 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我们都知道三元表达式是: 表1?表2:表3  这种类型,  表1必须为bool类型,那么表2和表3可以为bool类型么?

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

7 个回复

倒序浏览
可以,三元表达式只是要求表1必须为bool类型,表2和表3的类型一定要相同,举个例子:
  1.         static void Main(string[] args)
  2.         {
  3.             bool a = true;
  4.             bool b = false;
  5.             bool c = true;
  6.             Console.WriteLine(a?b:c);
  7.             Console.ReadKey();
  8.         }
复制代码
上面代码输出结果为False;需要注意的是,要是表2或表3其中一个为bool,另一个也必须为bool类型,要么其他相同类型。

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
理论上是可以但这样用好像没有意义了。
      static void Main(string[] args)
        {
            bool flag = (4 > 5) ? (5 > 6) : (6 > 5);
            bool flag2 = (4 > 5) ? (5 < 6) : (6 < 5);
            Console.WriteLine(flag);
            Console.WriteLine(flag2);
            Console.ReadKey();
        }
显示结果 true fase

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
可以但在(表达式1 ? 表达式2 : 表达式3)中,表达式2和表达式3的数据类型必须相同

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
可以的,只要求第一个是bool类型,第二个和第三个表达式是同一类型即可。

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
string 变量1 = bool类型 ? 变量2 : 变量3;

因为“变量2” 和“变量3”要赋值给“变量1”,所以“变量2” 、“变量3”、“变量1” 的类型肯定要相同啊。bool类型的当然可以的。
回复 使用道具 举报
  string s=(2>4)?"1":"4";

表2,3的返回值类型必须相同,同时表1的返回值必须是bool类型
回复 使用道具 举报
表2和表3可以为bool类型,不过必须是表2和表3都为bool类型,同时接收的变量也必须是bool类型
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马