Java 什么';这有什么问题吗?
我正在尝试做一个方法,测试3个长度是否可以组成一个三角形。我想我犯了一些语法错误,但我不知道是什么 下面是相关的代码:(它是用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
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");
}