java - 星号矩形 Java MOOC 39.3 的问题
问题描述
所以我确信这是一个熟悉的问题,因为我已经看到了所有答案,但我在这部分遇到了特别困难。我觉得我很接近,但有些输出很奇怪。几乎就像它正在以某种方式相乘(?)。希望输出能够清楚地说明我的意思。由于我在这个 MOOC 课程中的位置,我很确定我打算在调用原始 printStars 方法时使用 while 循环,所以我想让我的代码尽可能地相似。
public class HelloWorld {
private static void printStars(int amount) {
int i = 0;
while (i<amount) {
System.out.print("*");
i++;
}
}
private static void printRectangle(int width, int height){
int i = 0;
while(i < height){
int j = 0;
while(j < width){
printStars(width);
j++;
}
System.out.println();
i++;
}
}
public static void main(String[] args) {
printRectangle(width,height);
}
}
请注意,上面 printRectangle 方法中的宽度和高度实际上不是我的代码,而只是替换了下面的示例输出:
打印矩形(1,2):
*
*
打印矩形(1,5):
*
*
*
*
*
它似乎至少在高度上可以正常工作,但是一旦我开始用宽度进行测试,它就会全部搞砸
打印矩形(2,2):
****
****
打印矩形(3,2):
*********
*********
尽管宽度很奇怪,但高度似乎仍然可以正常工作
打印矩形(2,3):
****
****
****
打印矩形(3,3):
*********
*********
*********
这太奇怪了,老实说,我不知道为什么要这样做。我敢肯定这是我看不到的简单事情,但我已经坚持了几个小时,感谢您提供任何帮助。
解决方案
打印矩形的循环就足够了。您不需要额外的打印方法。或者你不需要额外的循环选择是你的。
像这样的东西:
private static void printRectangle(int width, int height){
int i = 0;
while(i < height){
int j = 0;
while(j < width){
System.out.print("*");
j++;
}
System.out.println();
i++;
}
}
或者
private static void printStars(int amount) {
int i = 0;
while (i<amount) {
System.out.print("*");
i++;
}
}
private static void printRectangle(int width, int height){
int i = 0;
while(i < height){
printStars(width);
}
System.out.println();
i++;
}
}
任何一个都可以工作!!
推荐阅读
- php - 如何将带有 EntityManager 注入的 Symfony 5 命令添加到控制台应用程序
- python - 前 n 个斐波那契数的总和
- reactjs - IOS上的反应体滚动锁定问题
- shell - 从 shell 中的 json 响应中提取节点值
- python - SQLAlchemy,查询嵌套的jsonb值每次都返回空列表
- javascript - 如果用户切换到另一个窗口,异步功能是否会暂停
- django - Onchange 缺少使用 django 进行的 AJAX 验证
- android - 另一个带有复选框的回收器视图中的Android回收器视图
- javascript - ngx-charts-advanced-pie-chart 渲染没有属性或属性
- python - 从其他文件导入功能不起作用