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


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 标签名;
   }
    }
}



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值