java如何转换为循环做while循环

问题描述:

对不起,我被困在转换这做while while循环可以请任何人帮助我。java如何转换为循环做while循环

int sum = 0; 
int num; 

System.out.print("Enter number: "); 
num = sc.nextInt(); 
// Store the user input into variable num        

// Complete the for loop to start from 1 
// and end at num 

for (int i = 1 ; i <=num ; i++) 
    sum += i; 

System.out.println("The sum is " + sum); 

,这是我的do while循环

int sum = 0; 
int num; 

int i = 1; 

do { 
    sum += i; 
    System.out.print("Enter number: "); 
    num = sc.nextInt(); 
    i++; 
} while (i <= num); 

System.out.println("The sum is " + sum); 
+0

你的while循环执行num + 1次。 – Maroun

+0

当你的输入*在for循环和*在while循环中时,你可能会有不同的行为。 – Filburt

+1

'for'循环首先检查条件以查看它是否可以迭代,'do-while'首先迭代,然后检查条件是否应该再次迭代。如果你想要有完全相同的行为,你需要在输入'do-while'之前添加条件检查,但是在这一点上它意味着你应该简单地使用'while {}'循环。 – Pshemo

int sum = 0; 
    int num; 
    int i = 0; 
    System.out.print("Enter number: "); 
    num = sc.nextInt(); 
    do{ 
    sum += i; 
    i++; 
    } 
    while (i <=num); 

    System.out.println("The sum is " + sum); 

初始化我到零,因为DO-而第一做检查,而不是为第一检查前做了。而且你的do-while将和你的for一样。或者你的do-while将会有1的总和,即使你的num是0.相对于你而言,如果num为0,sum = 0。

+0

为什么把System.out.print(“Enter number:”);和num = sc.nextInt();循环 – stevenTan

+1

的另一面,因为只需要一次该变量,除非将其添加到总和中 – alan

+0

@stevenTan提示:您还在原始代码中的'for'循环之外使用该变量。这是为什么? – Pshemo

在第一种情况下,您在for之外输入num值,您在do/while上执行第二种情况。所以,我认为要做到这一点:

//Variables 
int sum = 0; 
int num; 
int i = 0; 

//Select num 
System.out.print("Enter number: "); 
num = sc.nextInt(); 

do { 
    sum += i; 
    i++; 
} while (i <=num); 

System.out.println("The sum is " + sum); 

首先,你可能需要研究循环多一点的基础知识。 while循环和do-while循环之间的区别是条件被检查的地方。执行代码块后,Do-while循环检查条件。 while循环没有。它在执行前检查。

int num = sc.nextInt(); 
int i = 1; 
int sum = 0; 
do{ 
    sum += i; 
     i++; 
}while(i <= num);  //check condition after the running do block 
System.out.println(sum); 

**这取决于您的输入。这意味着如果您的输入为零,答案将是错误的。因为你的i = 1和总和等于1.