错误:不是声明

时间:2013-10-04 20:00:08

标签: java notepad++

所以我从九月开始上大学,我有一个课程介绍编程,我必须做一个程序,识别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" );
            }
        }
    }

2 个答案:

答案 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并且所有三个匹配。订单无关紧要。

玩得开心!