if((i-1)/7==0)
               System.out.println(spa1--<=0&&day1<cou1?day1<10?" 0"+day1++:" "+day1++:"  ");
         else if((i-1)/7==1)
               System.out.println(spa2--<=0&&day2<cou2?day<10" 0"+day2++:" "+day2++: " ");
         else 
               System.out.println(spa3--<=0&&day3<=cou3?day3<10?" 0"+day3++:" "+day3++:" ");
         if(i%7==0) 
               System.out.print(" ");
这个语句是怎么运行的,谢谢哥哥姐姐弟弟妹妹赐教!

解决方案 »

  1.   

    System.out.println(spa1--<=0&&day1<cou1 ? day1<10?"0"+day1++:" "+day1++  :  " ");
    这样是不是能明白些啊,判断spa1--<=0&&day1<cou1 的布尔值,如果真执行day1<10?"0"+day1++:" "+day1++ ,否则执行" ".相当于一个嵌套的IF判断语句。
      

  2.   

    楼主最好看看条件运算符 ?:这是C#里的例子:
    条件运算符 (?:) 根据布尔型表达式值返回两个值中的一个。条件运算符用于下列形式的表达式中:
    cond-expr ? expr1 : expr2
    其中: 
    cond-expr 
    bool 类型的表达式。 
    expr1 
    一个表达式。 
    expr2 
    一个表达式。 
    备注
    如果 cond-expr 为 true,则计算 expr1 并作为结果;如果 cond-expr 为 false,则计算 expr2 并作为结果。只能计算 expr1 和 expr2 之中的一个。
    使用条件运算符,可以更简洁、雅观地表达那些否则可能要求 if-else 结构的计算。例如,为在 sinc 函数的计算中避免被零除,可编写为
    if(x != 0.0) s = Math.Sin(x)/x; else s = 1.0;
    或使用条件运算符,
    s = x != 0.0 ? Math.Sin(x)/x : 1.0;
    条件运算符为右联运算符,因此该形式的表达式
    a ? b : c ? d : e
    按如下规则计算:
    a ? b : (c ? d : e)
    而不是按照下面这样计算:
    (a ? b : c) ? d : e
    不能重载条件运算符。
    示例
    // cs_operator_conditional.cs
    using System;
    class Test 
    {
       public static double sinc(double x) 
       {
          return x != 0.0 ? Math.Sin(x)/x : 1.0;
       }   public static void Main() 
       {
          Console.WriteLine(sinc(0.2));
          Console.WriteLine(sinc(0.1));
          Console.WriteLine(sinc(0.0));
       }
    }
    输出
    0.993346653975306
    0.998334166468282
    1
      

  3.   

    问题出在哪里呀
    是System.out.println(spa1--<=0&&day1<cou1?day1<10?" 0"+day1++:" "+day1++:"  ");
    运行不了还是别的?
      

  4.   

    相当于:
    if(spa1--<=0&&day1<cou1)
    {
    if(day1<10)
    {
    System.out.println(" 0"+day1++);
    }
    else
    {
    System.out.println(" "+day1++);
    }
    }
    else
    {
    System.out.println(" ");
    }