黑马程序员技术交流社区

标题: 这样的语句为什么错误 [打印本页]

作者: zcy黑马    时间: 2015-5-26 00:23
标题: 这样的语句为什么错误
  1. package my.test;

  2. /*
  3. * Hello12345World
  4. * 大写 : 2个
  5. * 小写 : 8个
  6. * 数字 : 5个
  7. */
  8. public class Test {
  9.    public static void main(String[] args) {
  10.          String st = "Hello12345World";
  11.          int ucount = 0, lcount = 0, num = 0;
  12.          char[] ch = st.toCharArray();
  13.          for (int i = 0; i < ch.length; i++) {
  14.          (ch[i]<58?num:(ch[i]<98?ucount:lcount))+=1;//之前用的if语句可以,想着用三元运算符就不行了
  15.          }
  16.    System.out.println(ucount+"***"+lcount+"***"+num);
  17.                
  18.    }
  19. }
复制代码

作者: zcy黑马    时间: 2015-5-26 00:24
  1. if (ch[i] <58 ) {
  2.                                 num++;
  3.                         } else if (ch[i] <98) {
  4.                                 ucount++;
  5.                         } else {
  6.                                 lcount++;

  7.                         }
复制代码

//这是if原语句
作者: zcy黑马    时间: 2015-5-26 00:26
...........没加注释,就是看这个字符串里面有多少个大写字母,小写字母,多少个数字的。
作者: zcy黑马    时间: 2015-5-26 00:34
为什么没有大神给我指导呢??????????太没营养了么??
作者: forTomorrow    时间: 2015-5-26 11:56
条件表达式不能取代一般的if语句,仅当if语句中内嵌的语句为赋值语句(且两个分支都给同一变量赋值)时才能代替if语句
作者: zcy黑马    时间: 2015-5-29 00:11
forTomorrow 发表于 2015-5-26 11:56
条件表达式不能取代一般的if语句,仅当if语句中内嵌的语句为赋值语句(且两个分支都给同一变量赋值)时才能代 ...

我搞定了已经,下面这样就可以了。多谢回答
  1. int m = ch[i]<58?num++:(ch[i]<98?ucount++:lcount++))
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2