所以我正在尝试编写这个代码进入另一个类来存储信息,但我有一个问题与for循环,我不知道为什么。
public static void main(String[] args) {
ArrayList<String> Teams = new ArrayList();
Scanner input = new Scanner(System.in);
System.out.printf("Please Enter how many teams?\n");
int x;
x = input.nextInt();
System.out.print(x);
for ( int i=0 ; i>=x ; i++)
{
System.out.printf("Enter the %s Team\n", x);
String temp;
temp = input.next();
Team TeamNamee = new Team(temp);
}
}
答案 0 :(得分:3)
循环应该是
for ( int i=0 ; i<=x ; i++)
i
小于x
了解循环:
for(initialization; Boolean_expression; update)
{
//Statements
}
初始化步骤首先执行,只执行一次。这一步 允许您声明和初始化任何循环控制变量。您 不需要在这里发表声明,只要一个分号 出现。
接下来,评估布尔表达式。如果是真的,身体的 循环执行。如果它是假的,则循环体不会 执行和控制流程跳转到for的下一个语句 循环。
执行for循环体后,控制流会跳转 备份到更新语句。此语句允许您更新 任何循环控制变量。这句话可以留空,只要这么久 因为分号出现在布尔表达式之后。
因此,在您的情况下(布尔表达式为false)i
不大于或等于x(如果x大于0),则不执行循环。
答案 1 :(得分:3)
像这样更改你的for循环:
for ( int i=0 ; i<=x ; i++)
而不是
for ( int i=0 ; i>=x ; i++)
答案 2 :(得分:1)
更改
for ( int i=0 ; i>=x ; i++)
到
for ( int i=0 ; i<=x ; i++)
所以只要i小于或等于x
,for循环就会运行答案 3 :(得分:1)
for(int i=x; i>=0; i--)
如果您想使用超过&#39;在条件部分。
答案 4 :(得分:1)
循环必须是:
for (int i = 1 ; i <= x ; i++)
如果您想从1开始编号,或
for (int i = 0 ; i < x ; i++)
如果您希望从0开始编号(在当前循环条件i>=x
中,如果true
则永远不会x > 0
,那么您的循环永远不会有效。)
同样表达
System.out.printf("Enter the %s Team\n", x);
在循环中看起来很奇怪,所以请考虑以下
System.out.printf("Enter the %d's Team\n", i);
并且从1开始的输出编号(关于for
的第一个选项)看起来似乎更好。
答案 5 :(得分:0)
将for循环更改为:
for(int i = 0; i<=x; i++)
{
}
代替:
for ( int i=0 ; i>=x ; i++)
{
}