您的位置:首页 > 编程语言 > Java开发

java循环结构--for,while以及do....while

2014-01-28 19:38 579 查看
1.循环的概念

(1)循环的由来:

我们写程序的时候,有时会发现很多代码都是重复的。这时我们就会想怎样才能去掉重复的代码,并保存原有的功能,于是就产生循环这一概念。循环不像顺序结构的程序语句只能被执行一次。如果您想要同样的操作执行多次,,就需要使用循环结构。

(2)循环的组成

A:循环体:要执行的操作。

B:初始化条件:一般地,定义的是一个初始变量。

C:判断条件:用于控制循环结束的语句。

D:控制条件:用于控制变量的变化的语句。一般是++/--操作。

(3)循环的分类:

A:for

for(初始化条件;判断条件;控制条件)

{

循环体;

}

执行流程:

a:先执行初始化条件;

b:执行判断条件;

c:根据判断条件的返回值来判断下一步的操作:

true:执行循环体。

false:结束循环。

d:最后执行控制条件,然后返回到b继续执行。

B:while

初始化条件;

while(判断条件)

{

循环体;

控制条件;

}

执行流程:

a:先执行初始化条件;

b:执行判断条件;

c:根据判断条件的返回值来判断下一步的操作:

true:执行循环体。

false:结束循环。

d:最后执行控制条件,然后返回到b继续执行。

C:do...while

初始化条件;

do{

循环体;

控制条件;

}

执行流程:

a:先执行初始化条件;

b:执行循环体和控制条件;

c:执行判断条件

d:根据返回值

true:返回b继续执行。

false:就结束循环。

注意事项:

a:一般使用for循环或者while循环。而且这两种循环是可以等价转换的。

b:do...while循环至少执行一次循环体。

c:for循环用于知道具体循环次数,while用于不明确具体循环次数

2.案例

(1)For案例:

A:求1-100的偶数和

class SumDemo
{
public void main(String[] args)
{
int sum = 0;
for(int x=1;x<=100;x++)
{
if(x%2==0)
{
sum=sum+x;

}
}
System.out.println("1-100的偶数和是"+sum);
}
}
B:求5的阶乘

public class ForTest {
public static void main(String[] args) {
int multiply = 1;
for(int x=1;x<=5;x++){
multiply=multiply*x;
}
System.out.println("5的阶乘:"+multiply);
}
}
C:打印出所有的"水仙花数"。

所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:

153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

代码如下:

class Shxh
{
public static void main(String[]aargs)
{

for(int n=100;n<1000;n++)
{
int i=n/100%10;
int j=n/10%10;
int k=n%10;
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
{
System.out.println(n);
}

}

}
}
(2)while案例

A:用while循环求1-100之奇数和。

class WhileTest
{
public static void main(String[] args)
{
int x = 1;
int sum = 0;

while(x <=100) {
if (x % 2 != 0) {
sum += x;
}

x++;
}

System.out.println("sum = " + sum);
}
}


B:需求:我国最高山峰是珠穆朗玛峰,8848米。现在我有一张足够大的纸,它的厚度是0.01米。

请问,我折叠多少次,可以折成珠穆朗玛峰的高度。(思考题)

思路:

A:知道初始化条件是厚度0.01米,也就是1cm。

最终条件是8848m,也就是884800cm。

循环体的内容是厚度每次变为以前的2倍。

判断条件是厚度有没有超过最大值。

B:定义一个统计变量,用于记录次数。

每当判断条件成立,我就++。

统计变量的初始化值是0。

C:因为我不知道多少次,所以用while循环。

代码如下:

class Demo
{
public static void main(String[] args)
{
int count=0;
int start = 1;
int end = 884800;
while(start<=end)
{
count++;
start*=2;
}
System.out.println("需要折的次数"+count);
}
}
(3)do...while案例

class DoWhileDemo
{
public static void main(String[] args)
{
//需求:把一句话打印5次:Hello World!

int x = 0;
do
{
System.out.println("Hello World");
x++;
}while(x<5);
}
}
3.循环嵌套:

(1)概念:就是循环语句的循环体本身也是一个循环语句。

(2)规律:外循环控制行数,内循环控制列数。

(3)案例:九九乘法表

代码如下:

class jiuJiu
{
public static void main(String[] args)
{
for(int i=1;i<=9;i++){
for(int j=1;j<=i;i++){
System.out.print(y+"*"+x+"="+y*x+"\t")
}
system.out.println();
}
}
}
break和continue

(1)我们有时候需要对循环进行一些终止控制,因此就有了break和continue这两个关键字

(2)用法:

A:它们都必须在循环中。(break还可以用在switch中)一般都用在循环的判断中。

B:注意 如果单独使用break和continue,后面不能有语句。

(3)区别:

A:break 结束当前循环。

B:continue 结束本次循环,进入下一次循环。

(4)如何退出循嵌套环

方法:用带标签的循环。

格式:

标签名:for(){

for(){

if(){

break 标签名;

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: