Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 什么';这有什么问题吗?_Java_Conditional - Fatal编程技术网

Java 什么';这有什么问题吗?

Java 什么';这有什么问题吗?,java,conditional,Java,Conditional,我正在尝试做一个方法,测试3个长度是否可以组成一个三角形。我想我犯了一些语法错误,但我不知道是什么 下面是相关的代码:(它是用java编写的) 这是我收到的错误消息: tryangle.java:17: 'else' without 'if' else ^ 对于第一个if,您有两个else块。如果出现以下情况,请尝试使用else: public static void trya (int a, int b, int c) { if (c

我正在尝试做一个方法,测试3个长度是否可以组成一个三角形。我想我犯了一些语法错误,但我不知道是什么

下面是相关的代码:(它是用java编写的)

这是我收到的错误消息:

tryangle.java:17: 'else' without 'if'
        else 
                ^

对于第一个
if
,您有两个
else
块。如果出现以下情况,请尝试使用
else:

public static void trya (int a, int b, int c)
{
    if (c>(a+b))
    {
        System.out.println ("yes") ;
    }
    else if (b>(a+c)) 
    {
        System.out.println ("yes") ;
    }
    else if (a>(b+c))
    {
        System.out.println ("yes") ;
    }
    else
    {
        System.out.println ("no") ;
    }
}

同一if不能有两个
else
s。更改嵌套,以便使用
else if
而不是

else
{
    if

问题似乎是您有多个else块,一个if语句只能有一个else块。

作为一名学生,我想我应该让您看看Java在线文档的一部分。

这是无效的:

if (cond A) {
    // ...
} else {
    if (cond B) {
        // ...
    }
} else {
    if (cond C) {
        // ...
    }
}
它应该是:

if (cond A) {
    // ...
} else if (cond B) {
    // ...
} else if (cond C) {
    // ...
}
有关详细信息,请访问。

它应该是:

public static void trya (int a, int b, int c) 
{ 
    if (c>(a+b)) 
    { 
        System.out.println ("yes") ; 
    } 
    else if (b>(a+c))  
    { 
        System.out.println ("yes") ; 
    } 
    else  if (a>(b+c)) 
    { 
        System.out.println ("yes") ; 
    } 
    else 
    { 
        System.out.println ("no") ; 
    } 
} 

以下是代码的格式:

if (...) {...}
else {...}
else {...} //else than what?

就个人而言,我不太喜欢
if/else

public static boolean isValidTriangle(int a, int b, int c)
{
    return (c > a + b) || (b > a + c) || (a > b + c);
}

public static void trya(int a, int b, int c)
{
    System.out.println(isValidTriangle(a, b, c) ? "yes" : "no");
}

还值得指出的是,您的方法实际上并没有测试三个长度是否可以构成一个三角形。例如,
trya(1,1,4)
将导致打印
yes
,即使边长1,1,4不构成三角形。

错误消息告诉了您什么?向我们提供您看到的任何错误或您认为自己犯语法错误的原因会很有用。您会得到什么错误?除此之外,一个改进是编写
else if(condition){}
而不是
else{if(condition){}
。将交换响应
“是”
“否”
。三元组不能构成三角形。@kenny,你的右边。我想知道为什么它不能正常工作。谢谢。实际上有三个
else
block;)如果条件(…)为true,则将执行if块。如果条件为false,将执行else块。您有一个条件和三个其他块。如果条件为false,将执行哪一个?
public static boolean isValidTriangle(int a, int b, int c)
{
    return (c > a + b) || (b > a + c) || (a > b + c);
}

public static void trya(int a, int b, int c)
{
    System.out.println(isValidTriangle(a, b, c) ? "yes" : "no");
}