询问用户H

时间:2015-12-02 10:34:45

标签: java loops while-loop java.util.scanner do-while

我想问用户(使用Scanner)他希望程序循环多少次。我需要使用do-while循环语句来执行此操作,但每当我输入我希望它循环的次数时,它只会从我放入的值中减去它,然后重复该数量。

例如,我输入4,程序重复16次而不是4次。

这是我的计划:

System.out.println("Enter range");
int y = input.nextInt();
int x = 10;
do {
    System.out.print("value of x : " + x );
    x++;
    y++;
    System.out.print("\n");
} while(y < 20);

我的问题在哪里?

3 个答案:

答案 0 :(得分:5)

当您输入4时,y变为4,循环将发生,直到y到达20。这就是为什么它被执行了16次。

如果您希望它完全y次执行(在您的情况下为4),那么您可以在每一步中使用y递减1,直至达到0 System.out.println("Enter range"); int y = input.nextInt(); int x = 10; do { System.out.print("value of x : " + x ); x++; y--; System.out.print("\n"); } while(y > 0);

this

答案 1 :(得分:3)

在您的循环中更改为while(y-- > 0)并且不要y++;。所以它会变成:

System.out.println("Enter range");
int y = input.nextInt();
int x = 10;
do {
    System.out.print("value of x : " + x );
    x++;
    System.out.print("\n");
} while(y-- > 0);

答案 2 :(得分:2)

你的逻辑很明显。

System.out.println("Enter range");
   int y = input.nextInt();
   int x = 10;
    do{
     System.out.print("value of x : " + x );
     x++;
     y++;
     System.out.print("\n");

   }while( y < 20  );

4&lt; 20 - &gt;它循环,每次,你用1递增。 所以:5,6,7,8,......,19,他们都将为y&lt; 20

你需要做的是比较一个从0开始的计数器和y:

System.out.println("Enter range");
   int y = input.nextInt();
   int x = 10;
   int count = 0;
    do{
     System.out.print("value of x : " + x );
     x++;
     count++;
     System.out.print("\n");

   }while( count < y  );