州际公路(Java)

时间:2020-11-03 03:46:50

标签: java

美国主要州际公路的编号为1-99。奇数(例如5或95)往北/南,偶数(例如10或90)往东/西。辅助高速公路的编号为100-999,服务于最右边两位数字指示的主要高速公路。因此,405服务于5,而290服务于90。

编写(定义)一个名为printHighwayInfo的公共静态方法,该方法将高速公路编号作为唯一参数(参数将为int)。调用此方法时,应打印出一个String,指示高速公路是主要公路还是辅助公路,以及高速公路是东西向还是南北向(请参见下面的示例)。此方法应具有return void返回类型。

示例:给定公路号,指示它是主要公路还是辅助公路。如果有辅助功能,请指明其服务的主要公路。还要指出(主要)高速公路是北/南还是东/西。

printHighwayInfo(90)将打印90,是主要的,向东/向西移动。 printHighwayInfo(290)将打印290是辅助数据,服务于90,向东/向西移动。 printHighwayInfo(185)将打印185是辅助数据,服务于85,向南/向南移动。 您可能希望编写一些其他代码来测试您的方法

提示:

您可以使用模数运算符(%)计算整数除法运算的提示。

例如:290%100将得出90,因为290除以100后的余数为90。

另一个例子:185%2为1,因为2进入185,共92次,剩下1个。另外,请注意,对于任何整数x,当x为奇数时,x%2始终为1,而当x为偶数时它将始终为0。

**这是我使用Java的第一周。到目前为止,我们一直在学习python,而我却遇到了最困难的时刻。我收到大量错误,不知道为什么。我的课堂笔记和讲座根本没有帮助。

    import java.util.Scanner;
public class Main {
  static Scanner scnr = new Scanner(System.in);
}
   public static void main(String[] args) {
        Scanner scnr = new Scanner(System.in);
        int highwayNumber;
        int primaryNumber;
       {
    public static int printHighwayInfo(int a);
    }
        if (printHighwayInfo >= 1 && highwayNumber <= 999) {
            if (printHighwayInfo <= 99) {
                if (printHighwayInfo % 2 == 0) {
                    System.out.println(printHighwayInfo + " is a primary highway, going east/west");
                } else {
                    System.out.println(printHighwayInfo + " is a primary highway, going north/south");
                }
            } else {
                primaryNumber = highwayNumber;
                highwayNumber %= 100;
                System.out.println(printHighwayInfo + " is an auxiliary highway, serving primary highway " + highwayNumber);
            }
        } else {
            System.out.println(printHighwayInfo + " is not a valid interstate highway number.");
        }
    }
}
{
System.out.println(printHighwayInfo(90));           
System.out.println(printHighwayInfo(290));  
System.out.println(printHighwayInfo(185));
}
}

//这些是我回来的错误

HighwayInfo.java:5: error: class, interface, or enum expected
   public static void main(String[] args) {
                 ^
HighwayInfo.java:7: error: class, interface, or enum expected
        int highwayNumber;
        ^
HighwayInfo.java:8: error: class, interface, or enum expected
        int primaryNumber;
        ^
HighwayInfo.java:9: error: class, interface, or enum expected
       {
       ^
HighwayInfo.java:10: error: class, interface, or enum expected
    public static int printHighwayInfo(int a);
                  ^
HighwayInfo.java:11: error: class, interface, or enum expected
    }
    ^
HighwayInfo.java:16: error: class, interface, or enum expected
                } else {
                ^
HighwayInfo.java:18: error: class, interface, or enum expected
                }
                ^
HighwayInfo.java:21: error: class, interface, or enum expected
                highwayNumber %= 100;
                ^
HighwayInfo.java:22: error: class, interface, or enum expected
                System.out.println(printHighwayInfo + " is an auxiliary highway, serving primary highway " + highwayNumber);
                ^
HighwayInfo.java:23: error: class, interface, or enum expected
            }
            ^
HighwayInfo.java:26: error: class, interface, or enum expected
        }
        ^
HighwayInfo.java:31: error: class, interface, or enum expected
System.out.println(printHighwayInfo(290));  
^
HighwayInfo.java:32: error: class, interface, or enum expected
System.out.println(printHighwayInfo(185));
^
HighwayInfo.java:33: error: class, interface, or enum expected
}
^
15 errors

1 个答案:

答案 0 :(得分:0)

您需要在代码中进行多项更改。

  1. 所有方法都应在Main类内部。
  2. 没有使用扫描仪,所以将其删除。
  3. 方法printHighwayInfo应该具有void返回类型。
  4. 方法printHighwayInfo只有一种返回类型,因此应使用一个变量。
  5. 需要删除不必要的括号。

我在逻辑上不正确,只是通过消除编译问题来帮助您进一步进行。此外,您可以使用逻辑。

public class Main {

  public static void main(final String[] args) {

    printHighwayInfo(90);
    printHighwayInfo(290);
    printHighwayInfo(185);
  }

  public static void printHighwayInfo(final int highwayNumber) {

    if (highwayNumber >= 1 && highwayNumber <= 999) {
      if (highwayNumber <= 99) {
        if (highwayNumber % 2 == 0) {
          System.out.println(highwayNumber + " is a primary highway, going east/west");
        } else {
          System.out.println(highwayNumber + " is a primary highway, going north/south");
        }
      } else {
        System.out.println(highwayNumber + " is an auxiliary highway, serving primary highway " + highwayNumber);
      }
    } else {
      System.out.println(highwayNumber + " is not a valid interstate highway number.");
    }
  }
}