所以我从九月开始上大学,我有一个课程介绍编程,我必须做一个程序,识别3个数字,并告诉多少是相等的例如:30 30 2“2数字相等”但是我得到错误:没有关于“else ( n1!= n2&& n2!= n3&& n3!= n1)的陈述; {
import java.util.Scanner;
public class Equal {
public static void main(String[] args) {
Scanner in = new Scanner( System.in );
int n1, n2, n3;
int a = 3;
int b = 2;
int c = 0;
System.out.println("choose tree numbers:");
n1 = in.nextInt();
n2 = in.nextInt();
n3 = in.nextInt();
if ((n1==n2 && n1==n3 || n2==n1 && n2==n3 || n3==n1 && n3==n2)) {
//Then the tree numbers are equal;
System.out.println( "There are: " + a + " equal numbers" );
}
if ((n1!=n3 && n1==n2 || n2!=n1 && n2==n3 || n3!=n2 && n3==n1 )) {
//Then only two numbers ill be the same;
System.out.println( "There are: " + b + " equal numbers" );
}
else ((n1!=n2 && n2!=n3 && n3!=n1)); {
//All the numbers are not equal;
System.out.println( "There are: " + c + " equal numbers" );
}
}
}
答案 0 :(得分:1)
更改
else ( n1!=n2 && n2!=n3 && n3!=n1 ); {
到
else if ( n1!=n2 && n2!=n3 && n3!=n1 ) {
答案 1 :(得分:0)
if (condition1) { do_something; }
else if (condition2) { do_something_else; }
else { do_a_different_thing; }
根据定义,一个裸的else子句不会占用条件 - 如果前面的if / else-if子句没有触发,它就会触发。我猜您可以将其视为隐式条件:if (!condition && !condition2)
(但请注意,一般,您不需要遵循if / else-if / else模式。您可以在没有else-ifs或else子句的行中有多个ifs,或者你可以有一个if / else没有else-ifs等等。这完全取决于情况的确切逻辑。)
一些建议 你考虑所有可能的情况真的很好。但是在这里,你有三个数字,如果你已经确定不是所有三个都匹配的情况,并且不是两个匹配的情况,那么剩下的唯一可能性就是它们都没有做。因此,您无需明确测试该案例 同样,在第一个条件下,检查三向匹配,您也不必明确测试每个组合。如果n1 == n2&& n1 == n3,然后通过传递性n2 == n3并且所有三个匹配。订单无关紧要。
玩得开心!