【问题标题】:error :not a statement错误:不是声明
【发布时间】:2013-10-04 20:00:08
【问题描述】:

所以我从 9 月开始我的大学,我有一门课程是关于编程的,我必须做一个程序来识别 3 个数字并告诉有多少相等,例如:30 30 2 “2 个数字相等”但是我得到错误:not a statement on "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 错误的说我需要“;”和我所说的同样的错误......

标签: java notepad++


【解决方案1】:

改变

 else ( n1!=n2 && n2!=n3 && n3!=n1 ); {

 else if ( n1!=n2 && n2!=n3 && n3!=n1 ) {

【讨论】:

  • 如果我这样做会在第 25 行出现 2 个错误,说“二进制操作符“&&”和“||”的操作数类型错误
  • 您需要使用更多的括号来使您的 if 语句对编译器更加清晰。例如,如果 ( (n1!=n3 && n1==n2) || (n2!=n1 && n2=n3) || (n3!=n2 && n3==n1) )
  • 您的一个 if 语句中还有一个 = 。 (n2!=n1 && n2=n3) 应该是 (n2!=n1 && n2==n3)
  • 我仍然遇到我的第一个错误,我编辑代码并放入新代码
  • 我找到了答案,我只需要输入“else if { 并且它对以正确的方式推动我前进很有效
【解决方案2】:
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-clause 的情况下连续有多个 ifs,或者你可以有一个没有 else-if 的 if/else 等等。这完全取决于情况的确切逻辑。)

一些建议。
您正在考虑所有可能的情况,这真是太好了。但是在这里,您有三个数字,如果您已经确定它们三个都不是匹配的,并且它们中的两个不是匹配的,那么剩下的唯一可能就是它们都不匹配做。因此,您不必明确地测试这种情况。
同样,在您的第一个条件中,检查三路匹配,您也不必显式测试每个组合。如果 n1==n2 && n1==n3,则通过传递性 n2==n3 并且所有三个匹配。顺序无关紧要。

玩得开心!

【讨论】:

    猜你喜欢
    • 2017-07-26
    • 2015-02-20
    • 2010-09-07
    • 2023-02-22
    • 2014-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-09
    相关资源
    最近更新 更多