我得到错误'否则没有'对于我的最后一个,我可能做错了什么?

时间:2016-02-19 19:16:17

标签: java if-statement

function total_validate(sender, args){
    var control = $find(sender.controltovalidate);
    var textBoxA = $find(//textBoxA ID).value;
    var textBoxB = $find(//textBoxB ID).value;
    var textBoxC = $find(//textBoxC ID).value;


    if (//textbox a plus b plus c is NOT what you want) 
    {
        arguments.IsValid = false;
    }

}

3 个答案:

答案 0 :(得分:1)

查看if (a+b>c&&b+c>a&&a+c>b);如果分号跟在这样的if语句后面,那么如果条件为真则没有任何反应(if条件中的任何副作用除外)。

此外,您的缩进与您的ifs所做的不一致,您需要大括号才能将语句组合在一起。

if (cond) {
    statement1;
    statement2;
}

如果没有花括号,则statement2不是if语句块的一部分,在:

if (cond)
   statement1;
   statement2;

然后,无论cond是否为真,statement2都会生效。 Java编译器不关心你的缩进。

回答“我能做错什么”的问题:你正在预先编写所有代码,并且只有在输入后才能使其工作。一次编写代码并测试随你而去一次编写一堆代码只会导致大量错误排序。

答案 1 :(得分:1)

因为elseif没有关联。

你这里有一个if,它本身没有做任何事情:

if (a+b>c&&b+c>a&&a+c>b);

(注意分号。这会完全终止if块。所以这实际上是一个 if块。)

如果您想将这些后续行代码放在if块中,请使用花括号:

if (a+b>c&&b+c>a&&a+c>b) {
    System.out.println("The triangle with sides " + a + "," + b + ", and" + c + " is Scalene.");
    if (a==b&&b==c)
       System.out.println("The triangle with sides " + a + "," + b + ", and" + c + " is Equilateral");
    else // (a==b) || (a==c) || (b==c)
       System.out.println("The triangle with sides " + a + "," + b + ", and" + c + " is Isoceles");
}
else
    System.out.println("There is no triangle with sides " + a + "," + b + ", and" + c);

即使除了分号之外,只要你有多个语句放入代码块(例如if块或for循环),那么你需要将它们分组大括号的陈述。

答案 2 :(得分:1)

if (a+b>c&&b+c>a&&a+c>b);

这是一个noop。没有花括号的if只能包含一条指令。这个独特的指令是noop:;

使用if,while,for等时总是使用大括号