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(" ");
这个语句是怎么运行的,谢谢哥哥姐姐弟弟妹妹赐教!
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(" ");
这个语句是怎么运行的,谢谢哥哥姐姐弟弟妹妹赐教!
这样是不是能明白些啊,判断spa1--<=0&&day1<cou1 的布尔值,如果真执行day1<10?"0"+day1++:" "+day1++ ,否则执行" ".相当于一个嵌套的IF判断语句。
条件运算符 (?:) 根据布尔型表达式值返回两个值中的一个。条件运算符用于下列形式的表达式中:
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
是System.out.println(spa1--<=0&&day1<cou1?day1<10?" 0"+day1++:" "+day1++:" ");
运行不了还是别的?
if(spa1--<=0&&day1<cou1)
{
if(day1<10)
{
System.out.println(" 0"+day1++);
}
else
{
System.out.println(" "+day1++);
}
}
else
{
System.out.println(" ");
}