黑马程序员技术交流社区
标题:
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.
循环变量自增量
例题
1
(
while
循环的用法):求班级所有人成绩总分的平均分:
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);
}
}
例题
2
(
do 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