错误:非法启动表达式和“;”预期

时间:2018-05-05 01:29:02

标签: java error-handling expression

问题:当狗在吠叫时,在早上8点或22点之前,返回true,否则返回false。

我的代码:

public class Barkingdog {

    public boolean bark(boolean barking, int hourofDay) {
        if (barking) {
            if (hourofDay >= 0 && hourofDay <= 8) {
                return true;
            } else if (hourofDay >= 22 && hourofDay < 24) {
            return true;
            } else {
                return false;
            }
        } else {
            return false;
        }
    }
}

尝试测试我的代码:

package com.company;

public class Main {

    public static boolean main(String[] args) {
    // write your code here
        System.out.println(public boolean bark (true, 4););
    }
}

2 个答案:

答案 0 :(得分:1)

创建Barkingdog的实例并从中调用bark方法:

public static void main(String[] args) {
    Barkingdog dog = new Barkingdog();
    System.out.println(dog.bark(true, 4));
}

另外,请使用适当的Java命名约定。类应使用驼峰套管:

public class BarkingDog { ... }

您还可以简单地使用bark方法的逻辑:

public boolean bark(boolean barking, int hourOfDay) {
    boolean morning = hourOfDay >= 0 && hourOfDay <= 8;
    boolean night = hourOfDay >= 22 && hourOfDay < 24;

    return barking && morning || night;
}

并且bark似乎不是这种行为的正确名称。

boolean barking表示狗是否真的在吠叫,而且barking可能是false,调用dog.bark(false, 8)可能会引起混淆:我们告诉狗要执行此行为bark,但是狗没有吠叫(由false参数指定)。

可能想为行为选择一个更具描述性的名称,例如isBarkingUnderirably,我们正在检查barking是否在理想的时间发生。

答案 1 :(得分:-1)

  1. 请确保您的main()方法具有正确的签名。
  2. 您正在调用该方法,因此无需提供访问修饰符。您只在声明时指定访问修饰符。
  3. 在通话时删除其他path('my_admin/', admin_site.urls, name='custom_admin'),

    ;