我想问用户(使用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);
我的问题在哪里?
答案 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 );