对于循环没有满足?

时间:2015-03-31 07:01:22

标签: java for-loop

所以我正在尝试编写这个代码进入另一个类来存储信息,但我有一个问题与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);
            }
        }

6 个答案:

答案 0 :(得分:3)

循环应该是

 for ( int i=0 ; i<=x ; i++)

i小于x

了解循环:

for(initialization; Boolean_expression; update)
{
   //Statements
}
  

初始化步骤首先执行,只执行一次。这一步   允许您声明和初始化任何循环控制变量。您   不需要在这里发表声明,只要一个分号   出现。

     

接下来,评估布尔表达式。如果是真的,身体的   循环执行。如果它是假的,则循环体不会   执行和控制流程跳转到for的下一个语句   循环。

     

执行for循环体后,控制流会跳转   备份到更新语句。此语句允许您更新   任何循环控制变量。这句话可以留空,只要这么久   因为分号出现在布尔表达式之后。

因此,在您的情况下(布尔表达式为false)i不大于或等于x(如果x大于0),则不执行循环。

Source

答案 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++) { }