A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© qiaojinhui 中级黑马   /  2013-5-12 14:05  /  3284 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 qiaojinhui 于 2013-5-12 14:47 编辑

for循环和do-while循环有什么区别?能不能举例说明?什么时候用for循环,什么时候用do-while循环.

9 个回复

倒序浏览
for多用于计数型循环,while多用于条件循环。
就是说,for循环一般就是规定次数,然后循环,比如循环一个数组,是有次数的。
而while是用于判断条件循环的,只要条件满足,就继续循环。

do-while和while的区别就是
while循环 先判断,然后再执行循环体,不满足就不执行。
而do-while就是先执行一遍循环体在判断。
回复 使用道具 举报
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是“不管判断条件是否成立,先执行一次再说,执行一次以后再通过判断,看看是否再次执行”
回复 使用道具 举报
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);

}

}


希望可以帮到你。
回复 使用道具 举报
恩,谢谢你啊!那你是说步确定循环次数的话就用while循环吗?
回复 使用道具 举报
楼上都说的好详细
回复 使用道具 举报
简单的归纳起来就是:
相同点:都是进行循环判断的
不同点:do-while是先执行后判断,因此do-while至少要执行一次循环体。而while是先判断后执行,如果条件不满足,则一次循环体语句也不执行。
for(表达式1;表达式2;表达式3) 第一步,计算表达式1的值。第二步,计算表达式2的值。若值为真(非0)则执行循环体一次,否则跳出循环。第三步,计算表达式3的值,转回第二步重复执行。
希望可以帮助到你。
回复 使用道具 举报
好多热心的同学,你们都回答的非常好
回复 使用道具 举报
果然, 太简单的问题不给技术分啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马