Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 转换;而";“循环到”;至于;及;“边做边做”;_Java_Loops_For Loop_While Loop_Do While - Fatal编程技术网

Java 转换;而";“循环到”;至于;及;“边做边做”;

Java 转换;而";“循环到”;至于;及;“边做边做”;,java,loops,for-loop,while-loop,do-while,Java,Loops,For Loop,While Loop,Do While,希望转换以下代码,将“while”循环中的整数值添加到“for”和“do-while”循环中。我设法让它与“for”和“while”循环一起正常工作,但当我尝试将同一个循环转换为“do-while”时,我得到了一些奇怪的数字 import java.util.Scanner; public class CountLoop{ public static void main (String[] args){ Scanner in = new Scanner (System.in);

希望转换以下代码,将“while”循环中的整数值添加到“for”和“do-while”循环中。我设法让它与“for”和“while”循环一起正常工作,但当我尝试将同一个循环转换为“do-while”时,我得到了一些奇怪的数字

import java.util.Scanner;
public class CountLoop{
public static void main (String[] args){
    Scanner in = new Scanner (System.in);
    int i = -1;
    int limit = 0;
    System.out.println("Please enter a number");
    String end1 = in.nextLine();
    int end = Integer.parseInt(end1);



    /*while (i < end){
        i++;
        limit = (i + limit); 
        */


    //for (i = -1; i < end; limit = (i + limit)) i++;{ 

    do {
        limit = (i + limit);
        i++;

    } while ((i < end)); 
    System.out.println("The sum of the numbers in between 0 and " + end + " is i = " + limit);




    }
    //System.out.println("The sum of the numbers in between 0 and " + end + " is i = " + limit);
}
import java.util.Scanner;
公共类计数循环{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(系统输入);
int i=-1;
整数极限=0;
System.out.println(“请输入一个数字”);
字符串end1=in.nextLine();
int end=Integer.parseInt(end1);
/*while(i

正如我所说,“while”和“for”循环工作正常,因此我对它们进行了注释,将重点放在“do-while”上循环,这给了我接近,但输出值不正确。例如,当我输入100时,预期的答案是5050,但无论出于什么原因,我得到4949。我试图围绕变量的初始值进行更改,并执行添加“end”之类的操作回到它,但这会让一切变得更糟。我不确定我在这里做错了什么,但任何帮助都是值得的。

while
循环在添加到结果之前是递增的。这意味着循环条件
while(Ii
等于
end
值时,
将导致循环退出,但在最后一次迭代中,end值已添加到总数中


要在
do while
循环中获得相同的行为,请将结束条件更改为
,您必须按如下方式交换行:

do {
    i++;
    limit = (i + limit);
} while ((i < end));
do{
i++;
极限=(i+极限);
}而((i

因此,您的
while
将与初始的
while

相同,我认为
while
do while
在这种情况下都将以相同的方式运行。请尝试此方法

do {
    i++;
    limit = (i + limit);

} while ((i < end)); 
System.out.println("The sum of the numbers in between 0 and " + end + " is i = " + limit);
do{
i++;
极限=(i+极限);
}而((i
do…while语句创建一个循环,该循环执行指定的语句,直到测试条件的计算结果为false。执行该语句后,将对该条件进行计算,导致指定的语句至少执行一次。如果while循环对您有效,请以相同的方式执行:
i++;
limit=(i+limit)
为什么你的while在do-while中有两个括号?我怀疑我在这里有什么事要做,但是把它放在
while(I
do {
    i++;
    limit = (i + limit);

} while ((i < end)); 
System.out.println("The sum of the numbers in between 0 and " + end + " is i = " + limit);