【问题标题】:How do I use Java functions to write a program that determines whether 4 integers entered by a user form a square or a rectangle?如何使用 Java 函数编写程序来确定用户输入的 4 个整数是形成正方形还是矩形?
【发布时间】:2020-07-29 22:41:51
【问题描述】:

我是一名正在学习计算机编程在线课程的学生。到目前为止,我似乎在整个春季学期都做得很好。但是,本周我被分配了作业,旨在测试我对 Java 函数的了解。我应该编写一个程序,要求用户输入 4 个整数,然后确定这 4 个条目是形成正方形还是矩形。如果这 4 个条目确实是一个正方形或矩形,那么假定的程序必须计算它的周长。

输出应该符合以下标准:

示例 1:

进入第一面

5

进入第二面

3

进入第 3 面

3

进入第 4 面

5

形成一个周长为 16 的矩形

示例 2:

进入第一面

5

进入第二面

5

进入第 3 面

5

进入第 4 面

5

形成一个周长为 20 的正方形

示例 3:

进入第一面

5

进入第二面

6

进入第 3 面

7

进入第 4 面

8

不形成矩形或正方形。

我重读了几次作业问题,并尝试了通过学习这周的所有课程作业我能记住的任何内容。到目前为止,我只能起草这样一个程序的一半工作:

import java.io.*;
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
    getUserInput();
    int a;
    int b;
    int c;
    int d;
int perimeter;
    boolean square = isSquare();
    boolean rect = isRectangle;
    printPerimeter();
}

System.out.println("Enter side 1: ");
a = Integer.parseInt(reader.readLine());

System.out.println("Enter side 2: ");
b = Integer.parseInt(reader.readLine());

System.out.println("Enter side 3: ");
c = Integer.parseInt(reader.readLine());

System.out.println("Enter side 4: ");
d = Integer.parseInt(reader.readLine());

if (a == c && b == d) {
    System.out.println("It is a rectangle.”);
perimeter += side;
}

else if (a == b && b == c && c == d && d == a) {
System.out.println("It is a square.”);
perimeter += side;
}
else {
    System.out.println("Incorrect. Try again.");
}

private void getUserInput() {
    System.out.println("Getting user input");
}

private boolean isSquare() {
    System.out.println("Is square?");
}

private boolean isRectangle() {
    System.out.println("Is rectangle?");
   }

private void printPerimeter() {
    System.out.println("Printing perimeter");
   }
}

现在我需要先弄清楚如何让代码在没有函数的情况下工作。然后,我必须将代码分解为函数。如何从一个程序开始,从用户那里捕获对象的 4 个侧面并计算周长?

感谢您的时间和考虑。

【问题讨论】:

  • 到目前为止,您的方法看起来不错。玩一点。尝试自己解决整个任务,如果您没有进一步了解并有特定问题,请返回。

标签: java function input integer square


【解决方案1】:

这不是对您问题的实际答案,但这是我一段时间以来一直想要发布的内容。问题是:当你完全陷入困境时该怎么办。

我在大学时学到的一件事是尝试概述代码,而不是尝试专注于细节。生成代码大纲并同时保持代码编译和工作可以帮助您在尝试解决难题时取得进展。

从这样的开始:

public class SquareOrRectangle {
  public static void main( String... args ) {
    // 1. Get user input
    // 2. Determine if square
    // 3. Determine if rectangle
    // 4. Print perimeter
  }
}

就是这样。只需从包含您认为需要的所有步骤的基本内容开始。然后,开始进一步分解,保持代码仍然可编译和运行。

public class SquareOrRectangle {
  public static void main( String... args ) {
    // 1. Get user input
    getUserInput();

    // 2. Determine if square
    boolean square = isSquare();

    // 3. Determine if rectangle
    boolean rect = isRectangle();

    // 4. Print perimeter
    printPerimeter();

  }

  private void getUserInput() {
    System.out.println( "Getting user input" );
  }

  private boolean isSquare() {
    System.out.println( "Is square?" );
  }

  private boolean isRectangle() {
    System.out.println( "Is rectangle?" );
  }

  private void printPerimeter() {
    System.out.println( "Printing perimeter" );
  }
}

该程序仍然不执行任何操作,但它会将问题分解为更容易解决的更小步骤。重要的是,该程序仍然可以编译和运行。这意味着您可以对其进行测试。这一点很重要,因为您不想编写大量代码然后必须一次测试所有代码,您希望能够测试更小的步骤以便更快地发现错误。

如果在任何步骤中您不知道如何解决该步骤,请再次将其分解为小步骤,然后重复,直到步骤小到您确实知道如何解决它们为止。

就是这样。把你的程序分成小步骤。在尝试使其余代码正常工作之前,测试每个步骤并使其正常工作。把测试和代码写成更小的块,不要试图一口气写出整个程序。

【讨论】:

  • 感谢您向我展示如何开始概述此内容。不过,关于您在此处演示的代码,我还有几个问题。如何捕获用户输入并确定该输入是正方形还是矩形?另外,计算周长所需的最佳逻辑是什么?
【解决方案2】:

我认为@markspace 的回答非常清楚地概述了流程。除此之外,我认为您的问题陈述仅在正方形或矩形时才要求您计算周长。所以不要忘记添加该检查:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-19
    • 1970-01-01
    • 2018-01-15
    • 1970-01-01
    • 2019-03-12
    • 2017-07-22
    • 1970-01-01
    • 2015-03-05
    相关资源
    最近更新 更多