黑马程序员技术交流社区

标题: for循环和do-while循环有什么区别? [打印本页]

作者: qiaojinhui    时间: 2013-5-12 14:05
标题: for循环和do-while循环有什么区别?
本帖最后由 qiaojinhui 于 2013-5-12 14:47 编辑

for循环和do-while循环有什么区别?能不能举例说明?什么时候用for循环,什么时候用do-while循环.
作者: up.yfei    时间: 2013-5-12 14:15
for多用于计数型循环,while多用于条件循环。
就是说,for循环一般就是规定次数,然后循环,比如循环一个数组,是有次数的。
而while是用于判断条件循环的,只要条件满足,就继续循环。

do-while和while的区别就是
while循环 先判断,然后再执行循环体,不满足就不执行。
而do-while就是先执行一遍循环体在判断。
作者: 小石头39910    时间: 2013-5-12 14:22
for先判断条件成立不成立,然后再决定执行不执行。while同for,不过while的判断面比for广一些。for大多数用来控制循环次数,典型的有:for(i=1;i<3;i++)while的判断范围比for广,比如:i=1;while(i<3){......i++;}while(a=b){.....}do~while与while的区别在于,while是“先判断条件是否成立,再决定是否执行循环”do~while是“不管判断条件是否成立,先执行一次再说,执行一次以后再通过判断,看看是否再次执行”
作者: 杨兴庭    时间: 2013-5-12 14:37
1.  while ( 循环条件 ) {

循环操作

}


2.  do {

循环操作

} while( 循环条件 );                  



3.  For( 初始语句 ;  循环起止条件; 循环变量自增量)
{
           循环操作
}

总结:while先判断再执行循环,do while先执行一次循环后判断,for先判断后循环;
在实际解题时,分析题目是先判断还是先执行,先判断用后执行用while,先执行一次循环后判断用do while,当知晓循环次数时就用for循环




循环结构注意点:


                1.循环起止条件
                2.循环终止条件
                3.循环操作
                4.循环变量自增量


例题1while循环的用法):求班级所有人成绩总分的平均分:
import java.util.Scanner;
public class S3 {


public static void main(String[] args) {

Scanner input=new Scanner(System.in);
int sum=0;  
int avg=0;
int i=1;     //计数变量
int stuNum;  // 学生数
int score;   // 分数
System.out.println("请输入学生的总数:");
stuNum=input.nextInt();
while(i<=stuNum){
System.out.print("请输入第"+i+"个同学的成绩:");
score=input.nextInt();
sum=sum+i;
i++;
}

avg=sum/stuNum;

System.out.println(stuNum+"个同学的平均分是"+avg);





}



}



例题2do while循环用法):使用do-while实现:输出摄氏温度与华氏温度的对照表,要求它从摄氏温度0度到250度,每隔20度为一项,对照表中的条目不超过10条。
      转换关系:华氏温度 = 摄氏温度 * 9 / 5.0 + 32
import java.util.Scanner;
public class S6 {


public static void main(String[] args) {
Scanner input=new Scanner(System.in);
double c=0;   //摄氏度
double h;    //华氏度
int i=1;      //计数变量
System.out.println("摄氏温度:\t华氏温度:");
do
{
h=c*9/5.0+32;

System.out.println(c+"\t\t"+h);
c=c+20;
i++;

}
while(c<=250&&i<=10);




}

}


例题3(for循环的用法)   100以为能被3整除数之和


public class zhengChu {


public static void main(String[] args) {
   int i;  //计数变量
  int sum=0;  //求和变量
   for(i=0;i<100;i++)
   {
   if(i%3!=0)
   {
   sum=sum+i;
   }
   }
   System.out.print(sum);

}

}




例题4(for循环的用法) 输入一名同学5门课的成绩并计算总分。


import java.util.Scanner;


public class text3 {


public static void main(String[] args) {
Scanner input=new Scanner(System.in);
       String name;              
       System.out.println("请输入同学的姓名:");
       name=input.next();
       int i;              //计数变量
       double score;        //分数
       double sum=0;      //求和变量

       for(i=0;i<5;i++)
       {
        System.out.print("请输入"+name+"同学第"+(i+1)+"门成绩:");
        score=input.nextDouble();
        if(score<0)
        {
        System.out.println("输入错误,重新输入");
        score=input.nextDouble();
        }
        sum=sum+score;

       }
       System.out.println(name+"同学的总分是"+sum);

}

}


希望可以帮到你。

作者: qiaojinhui    时间: 2013-5-12 14:45
恩,谢谢你啊!那你是说步确定循环次数的话就用while循环吗?
作者: 8047107    时间: 2013-5-12 19:33
楼上都说的好详细
作者: 小陈期待逆袭    时间: 2013-5-12 19:42
简单的归纳起来就是:
相同点:都是进行循环判断的
不同点:do-while是先执行后判断,因此do-while至少要执行一次循环体。而while是先判断后执行,如果条件不满足,则一次循环体语句也不执行。
for(表达式1;表达式2;表达式3) 第一步,计算表达式1的值。第二步,计算表达式2的值。若值为真(非0)则执行循环体一次,否则跳出循环。第三步,计算表达式3的值,转回第二步重复执行。
希望可以帮助到你。
作者: 黑马-许鹏    时间: 2013-5-12 21:07
好多热心的同学,你们都回答的非常好
作者: 葛杨杨    时间: 2013-5-13 00:27
果然, 太简单的问题不给技术分啊




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2