Java LeapYear程序,不知道为什么第三种方法不打印?

时间:2018-03-31 17:04:40

标签: java methods printing

我不知道为什么它的可分割不打印。有人,请解释一下。一切正常。但没有通过第三种方法。我不知道为什么。

function getComponentMeta(compType): { inputs, outputs } {
    const props = compType.__prop__metadata__;
    const inputs = [];
    const outputs = [];
    for (const prop in props) {
      const member = props[prop][0];
      if (member.ngMetadataName === 'Input') {
        inputs.push(prop);
      }else if (member.ngMetadataName === 'Output') {
        outputs.push(prop);
      }
    }
    return {
      inputs: inputs.sort(),
      outputs: outputs.sort()
    };
  }

} }

2 个答案:

答案 0 :(得分:0)

你永远不会打电话给这个方法。让getYear方法将年份返回给变量,然后使用year作为参数调用is isLeap方法。

这是有效的代码。我强烈建议你回到你的班级并重新审视方法。你似乎对他们的工作有着根本的误解。祝你好运。

import java.util.Scanner;

public class LeapYear {

public static void main(String[] args) {
    displayInstructions();
    int year = getYear();
    isLeap(year);
}

public static void displayInstructions() {
    System.out.println("This program asks you to enter a year as a 4 digit number. The output will indicate whether the year you entered is a leap year.");
}

public static int getYear() {
    Scanner reader = new Scanner(System.in);
    System.out.println("Enter a year: ");
    int year = reader.nextInt();
    return year;
}

public static void isLeap(int year) {
    if (year % 4 == 0) {
        System.out.println("It's Divisible");

    }

}

}

答案 1 :(得分:0)

如果您希望程序正常运行,则需要纠正一些问题。我看到你需要改变的事情清单:

  1. getYear()的返回值从void更改为int(您希望将其返回以将其传递给isLeap()方法)。
  2. getYear()的结果分配给int变量(例如int年)
  3. 更改isLeap()方法,使其成为static。 (你不需要那种包含那种方法的类的实例)
  4. 添加return year;以正确返回int值表单isLeap(),或者如果您不再需要该年,请将isLeap()的返回值更改为void
  5. 我将闰年的正确计算作为练习,因为现在似乎你没有完全覆盖这个问题(维基百科here代表:
  6. 如果(年份不能被4整除)那么(这是常见的一年)

    否则如果(年份不能被100整除)那么(这是闰年)

    如果(年份不能被400整除)那么(这是常见的一年)

    其他(这是闰年)

    1. ; if之后删除isLeap(),因为它会立即退出循环,始终会打印“It's Divisible”。
    2. 现在,你的代码让它在没有适当计算闰年的情况下工作,因为我认为这对你来说是一个很好的练习,可以提高你的技能并让它发挥作用:

      public class LeapYear {
      
          public static void main(String[] args) {
              displayInstructions();
              int year = getYear();
              isLeap(year);
          }
      
          public static void displayInstructions() {
              System.out.println(
                      "This program asks you to enter a year as a 4 digit number. The output will indicate whether the year you entered is a leap year.");
          }
      
          public static int getYear() {
              Scanner reader = new Scanner(System.in);
              System.out.println("Enter a year: ");
              int year = reader.nextInt();
              return year;
          }
      
          public static int isLeap(int year) {
              if (year % 4 == 0 && year % 100 != 0) { // here you need to make more improvemnts to make this method count leap year properly (I pasted a tip for you with italics formatting, how to count it)        
                  System.out.println("It's Divisible");
              }
              return year;
          }
      }