我需要创建一个嵌套的for循环,它提供以下输出,
0
1
2
3
这就是我所拥有的,但是对于第二次测试,userNum
被替换为6,显然我的代码失败了..帮助?
public class NestedLoop {
public static void main (String [] args) {
int userNum = 0;
int i = 0;
int j = 0;
for(i = 0; i <= userNum; i++){
System.out.println(i);
for(i = 1; i <= userNum; i++){
System.out.println(" " +i);
for(i = 2; i <= userNum; i++){
System.out.println(" " +i);
for(i = 3; i <= userNum; i++){
System.out.println(" " + i);
}
}
}
}
return;
}
}
答案 0 :(得分:0)
我认为(这是猜测),你正在寻找这个。
public static void main (String [] args)
{
int limit = 6;
for(int i = 0; i <= limit; i++)
{
for(int j = 0; j < i; j++)
System.out.print(" ");
System.out.println(i);
}
}
正如我所看到的那样,您的方法失败的原因是,您正在循环显示数字(正确)但您无法循环查看空格数(我通过将内循环的限制与外循环的当前值相关联来解决。
答案 1 :(得分:0)
让我们谈谈你对这些循环的意图。
内部循环意味着产生任意数量的空格,具体取决于您重复使用的数字。因此,如果您在数字0上,则不会产生空格,如果您在1上,则会产生一个空格,依此类推。另一个警告是,所有必须出现在同一行,因此System.out.println
是不正确的选择。
您可能希望使用System.out.print
打印出空格。所以,让我们写下来。
for(int j = 0; j < 6; j++) {
System.out.print(" ");
}
这将无条件打印出六个空格。 的条件取决于我们正在迭代的当前数字。这来自你的外循环。
你只需要定义一个从任意起始点开始的循环 - 比如0 - 然后循环直到你最多你的结束号。为此,您的当前循环就足够了:
for(i = 0; i <= userNum; i++) {
}
现在,我们需要将两个部分组合在一起。我把这个问题留下了问号以及在之后打印的内容,你已经将这些空间作为练习打印给用户,记住你必须在你之后停止打印空格。已达到你的号码。
for(int i = 0; i <= userNum; i++) {
for(int j = 0; j < ?; j++) {
System.out.print(" ");
}
}
答案 2 :(得分:0)
让我们分析一下这个任务 在每一行中,我们都应在数字的前面打印一个数字和不同的数字空格 为此,我们需要两个循环 - 一个外部从0到N迭代,一个内部在数字前面添加空格。
private static void method1(int userNum) {
int nummSpaces = 0;
for (int i = 0; i <= userNum; i++) {
for (int j = 0; j < nummSpaces; j++) {
System.out.print(" ");
}
nummSpaces++;
System.out.println(i);
}
}
在这个解决方案中,我们有变量numSpaces
,它用于计算数字前面的空格数。它是不必要的 - 我们可以为此目的使用变量i
。
private static void method2(int userNum) {
for (int i = 0; i <= userNum; i++) {
for (int j = 0; j < i; j++) {
System.out.print(" ");
}
System.out.println(i);
}
}
让我们再次分析输出
- 第一行:打印零空格和数字0
- 第二行:打印一个空格和数字1
- 第三行:打印两个空格,编号为2
- 等等
最后,我们只能使用一个包含空格的变量,然后打印出它的长度:
private static void method3(int userNum) {
for (String spaces = ""; spaces.length() <= userNum; spaces += " ") {
System.out.println(spaces + spaces.length());
}
}
答案 3 :(得分:0)
C / C ++
#include <iostream>
using namespace std;
int main() {
int userNum;
int i;
int j;
cin >> userNum;
for (i = 0; i <= userNum; ++i) {
for (j = 0; j < i; ++j) {
cout << " ";
}
cout << i << endl;
}
return 0;
}