public static void main(String[] args) {
int num = 1;
//i is how many numbers per row
for(int i = 1; i < 5; i++){
//prints i numbers because j increases from 0 to i, incrementing num each time
for(int j = 0; j < i; j++){
System.out.print(num++);
}
System.out.println();
}
}
此代码将适用于您的目的。
现在,如果您想更好地理解 Java,请继续阅读,看看为什么编译器会在您的代码中抛出错误。您不应该使用 stackoverflow 在不理解的情况下复制粘贴其他人的代码。在您的代码中,您声明i
了j
两次。在 Java 中,您不能两次声明一个变量。您首先int i,j, num = 1;
在每个 for 循环中执行此操作,然后再次执行此操作for (int i = 1; i <= lines; i++)
。你可以通过说来纠正这个问题for(i = 1; i <= lines; i++)
。注意在循环int
的第二个版本中是如何遗漏的。for
您可以简单地在 for 循环中为变量赋值,而不是像声明类型时那样创建新变量int i = 1
for 循环的语法是:
for(initialization; Boolean_expression; update)
{
//Statements
}
首先执行初始化步骤,并且只执行一次。此步骤允许您声明和初始化任何循环控制变量。只要出现分号,您就不需要在此处声明。
至于您收到的数组越界错误,您正在尝试在语句中读取命令行参数int n = Integer.parseInt(args[0]);
注意 main 方法如何具有参数String[] args
。这些称为命令行参数,如果您从命令行手动运行程序,则可以传入。您试图读取 .args[0]
范围之外的内容args[]
。
换句话说,如果你运行
java MyProgram one two
然后 args 包含:
[ “一二” ]
public static void main(String [] args) {
String one = args[0]; //=="one"
String two = args[1]; //=="two"
}