gpt4 book ai didi

java - "Better Code"+ 用户输入

转载 作者:行者123 更新时间:2023-12-02 12:05:31 24 4
gpt4 key购买 nike

所以我刚刚创建了一个小程序,在要求用户输入盒子的特定高度和宽度后打印出一个星星盒子,例如:高度:4; width: 5 会打印出这个星盒:

enter image description here

这是我的代码

import java.util.*;
public class Stars {
public static Scanner scan = new Scanner(System.in);
public static int height = scan.nextInt();
public static Scanner scan2 = new Scanner(System.in);
public static int width = scan.nextInt();
public static void main(String[] args) {
drawBox(height, width);
}
public static void drawBox(int height, int width) {
drawStars(width);
drawStarsWithSpaces(height, width);
drawStars(width);
}
public static void drawStars(int width) {
for (int i = 0; i < width; i++) {
System.out.print("*");
}
System.out.println();
}
public static void drawStarsWithSpaces(int height, int width) {
for (int x = 0; x < height - 2; x++) {
System.out.print("*");
for (int i = 0; i < width - 2; i++) {
System.out.print(" ");
}
System.out.print("*");
System.out.println();
}
}
}

现在我的第一个问题是,当我启动程序时,如何实现一个显示“盒子高度”和“盒子宽度”的文本,以便用户知道要输入什么。

接下来我听说,由于某种原因不要使用全局变量,并且我应该仅在 main 方法之后实现代码......但是具有这些要求的程序代码会是什么样子?

最佳答案

首先,您不需要两个扫描仪。一个就够了。

其次,对您的代码的注释是正确的 - 如果不需要的话,使用 static 变量被认为是不好的做法(这就是您所引用的“全局”变量)。

这些值应该位于 main 函数的内部(该函数应该读取这些值并调用适当的函数,因此它们应该在其中声明和使用,而不是在其外部。
它看起来像:

public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int width = input.nextInt(), height.nextInt();
...
}

至于仅在main之后运行代码:您在减速时初始化widthheight。由于它们被声明为静态,因此它们会在类加载时被初始化。
main 有机会运行之前!
这也被认为是不好的做法。
还有一件事 - 这意味着您无法在 nextInt() 发生之前运行任何代码(好吧,您可以初始化另一个static变量使用可以打印所需说明的方法...)。

总结一下:
将您使用的所有变量设置为 main 的本地变量,然后您可以在扫描下一个输入之前打印(使用 System.out.println())您想要的任何内容(因为扫描将发生在 main 本身。

关于java - "Better Code"+ 用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46935028/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com