当前位置: 首页 > 知识库问答 >
问题:

BJP4练习3.20:输入生日

廖招
2023-03-14

编写一个名为inputBirthday的方法,该方法接受控制台的Scanner作为参数,并提示用户输入出生的月份、日期和年份,然后以合适的格式打印出生日期。这是与用户的示例对话:

我需要像这样接受这个输入-

你是在一个月的哪一天出生的?8<br>你出生的月份叫什么?阿美:
你是哪一年出生的?1981

输出应该是这样的-

你出生于1981年5月8日。你真老了!

public static void main(String[] args) {

    inputBirthday();
}


  public static void inputBirthday() {
      Scanner abc = new Scanner(System.in);
      System.out.println("On what day of the month were you born? ");
      int inputDay = abc.nextInt();
      System.out.println("What is the name of the month in which you were born? ");
      String inputMonth = abc.next();
      System.out.println("During what year were you born? ");
      int inputYear = abc.nextInt();
      System.out.println("You were born on " + inputMonth + " " + inputDay + "," + " " + inputYear + "." + " You're mighty old!");
}

共有3个答案

傅胡媚
2023-03-14

public static void inputBirthday(Scanner input) {
     Scanner start = new Scanner(System.in);
    System.out.print("On what day of the month were you born? ");
    int day = input.nextInt();
    System.out.print("What is the name of the month in which you were born? ");
    String month = input.next();
    System.out.print("During what year were you born? ");
    int year = input.nextInt();
     System.out.println("You were born on " + month + " " + day + "," + " " + year + "." + " You're mighty old!");
}
高豪
2023-03-14
public static void main(String[] args) {

    Scanner in = new Scanner(System.in);
    // either instantiate the enclosing class, or make inputBirthday static
    inputBirthday(in);
    }

  public static void inputBirthday(Scanner abc)
 {
    System.out.print("On what day of the month were you born? ");
    int inputDay = abc.nextInt();
    System.out.print("What is the name of the month in which you were born? ");
    String inputMonth = abc.next();
    System.out.print("During what year were you born? ");
    int inputYear = abc.nextInt();
    System.out.println("You were born on " + inputMonth + " " + inputDay + "," + " " + inputYear + "." + " You're mighty old!");
    }

最后,它成功了,代码通过了所有测试

测试结果

高勇
2023-03-14

我认为问题在于,要求明确规定您要编写一个名为 inputBirthday 的方法,该方法接受扫描仪对象。您已经编写了一个 main 方法,然后编写了一个方法 inputBirthday,它接受 String、int、int

将代码从main方法移动到inputBirthday方法,摆脱扫描仪实例化,修改inputBirthday方法以接受扫描仪(可能是inputBirthday(Scanner abc)

编写的代码在intellij中工作,因为它是一个完整的程序。但是对于站点,他们期望特定的方法签名。这种方法与leetcode或其他此类在线代码所期望的没有什么不同。

OP进行了编辑,但是同样,需求规定该方法应该类似于:

public void inputBirthday(Scanner abc) {
    System.out.println("On what day of the month were you born? ");
    int inputDay = abc.nextInt();
    System.out.println("What is the name of the month in which you were born? ");
    String inputMonth = abc.next();
    System.out.println("During what year were you born? ");
    int inputYear = abc.nextInt();
    System.out.println("You were born on " + inputMonth + " " + inputDay + "," + " " + inputYear + "." + " You're mighty old!");
}

所以,再一次:

  • 获取与需求匹配的方法签名(不清楚它是否应该是静态的,因此可能需要是公共静态输入生日(Scanner abc)
  • 不要在<code>inputBirth</code>方法中实例化扫描仪

要从 IDE 进行测试,请执行以下操作:

public static void main(String[] args) {
  Scanner in = new Scanner(System.in);
  // either instantiate the enclosing class, or make inputBirthday static
  inputBirthday(in);
}
 类似资料:
  • 你已经学会了使用printf来打印变量,这非常不错,但是还需要学习更多。这个练习中你会用到fscanf和fgets在结构体中构建关于一个人的信息。在这个关于读取输入的简介之后,你会得到C语言IO函数的完整列表。其中一些你已经见过并且使用过了,所以这个练习也是一个记忆练习。 #include <stdio.h> #include "dbg.h" #define MAX_DATA 100 type

  • 不要删除Makefile,因为它可以帮你指出错误,以及当我们需要自动化处理一些事情时,可以向它添加新的东西。 许多编程语言都使用了C风格的格式化输出,所以让我们尝试一下: #include <stdio.h> int main() { int age = 10; int height = 72; printf("I am %d years old.\n", age);

  • 因为世人都犯了罪,亏缺了神的荣耀。如今却蒙神的恩典,因基督耶稣的救赎,就白白的称义。神设立耶稣作挽回祭,是凭着耶稣的血,藉着人的信,要显明神的义。因为他用忍耐的心,宽容人先时所犯的罪。好在今时显明他的义,使人知道自己为义,也称信耶稣的人为义。(ROAMNS 3:23-26) 练习 有学习者问:“看完你的教程,我可以达到什么水平?” 我无语。 同样小学、中学甚至大学,同班同学读同一本书,天天由同一个

  • 练习 对实验报告的要求: 基于markdown格式来完成,以文本方式为主 填写各个基本练习中要求完成的报告内容 完成实验后,请分析ucore_lab中提供的参考答案,并请在实验报告中说明你的实现与参考答案的区别 列出你认为本实验中重要的知识点,以及与对应的OS原理中的知识点,并简要说明你对二者的含义,关系,差异等方面的理解(也可能出现实验中的知识点没有对应的原理知识点) 列出你认为OS原理中很重要

  • 练习 对实验报告的要求: 基于markdown格式来完成,以文本方式为主 填写各个基本练习中要求完成的报告内容 完成实验后,请分析ucore_lab中提供的参考答案,并请在实验报告中说明你的实现与参考答案的区别 列出你认为本实验中重要的知识点,以及与对应的OS原理中的知识点,并简要说明你对二者的含义,关系,差异等方面的理解(也可能出现实验中的知识点没有对应的原理知识点) 列出你认为OS原理中很重要

  • 练习 对实验报告的要求: 基于markdown格式来完成,以文本方式为主 填写各个基本练习中要求完成的报告内容 完成实验后,请分析ucore_lab中提供的参考答案,并请在实验报告中说明你的实现与参考答案的区别 列出你认为本实验中重要的知识点,以及与对应的OS原理中的知识点,并简要说明你对二者的含义,关系,差异等方面的理解(也可能出现实验中的知识点没有对应的原理知识点) 列出你认为OS原理中很重要