public class A{
public static void main(String args[]){
int hour;
int input=13;
((input>=0)&&(input<=24))?hour=input:hour=0;
System.out.println("Hour"+hour);
}
}
上面的源程序没错吧,怎么编译时总提示?处有错呢。
 原题是:检查输入数据input是否是合法的小时数(在0到24之间),如是则将此值赋给变量hour,否则将-1赋给变量hour。

解决方案 »

  1.   

    public static void main(String args[]) 
        {
            int hour = 0;
            int input = 13;
            hour = ((input >= 0) && (input <= 24)) ? input: -1;
            System.out.println("Hour" + hour);
        }
      

  2.   

    补充:
    int hour 在申明时不需要赋值,你的写法是对的,我的写法是多余的。
    因为 int型 自动赋值为 0 。
      

  3.   

    感谢,原来我的问题出在对条件运算符不理解,我将它当成了IF...Then语句了。
    hour=((input>=0)&&(input<=24))?input:-1;