Java开发必备点03_流程控制之循环结构


### 循环的概念

```Java
概念:通过某个条件的控制,使代码重复有规律的执行

对于循环的理解

4000

从第一圈开始 -------------------循环变量的初始化              
每跑完一圈(循环体) 加一计数---------------循环变量的改变
第十圈 结束 ----------循环条件的判断

循环的结构

while
语法:
	循环变量的初始化;
	while(循环条件的判断){
		循环体;
		循环变量的改变;
	}
流程:见图示
循环体执行次数是 0---n
死循环的写法:whiletrue){}
案例:
public class Demo{
	public static void main(String[] args) {
		int i=1;
		while (true) {
			System.out.println("是德国和健康的发给我舒服"+i);
			i++;
		}
		
	}
		
}

但是循环条件判断不能直接写成false 但是循环条件结果可以是false
案例:
public class Demo{
	public static void main(String[] args) {

		//定义一个循环变量
		int i = 1;
		
		while (i<=10000) {
			//循环体
			System.out.println("hello world"+i);
			//循环变量改变
			i++;//i=i+1; i+=1
		}
	}
		
}

练习:
用while循环实现跑圈的案例
public class Demo{
	public static void main(String[] args) {
		//定义循环变量
		int i = 1;
		while (i<=10) {
			System.out.println("我现在跑的是第"+i+"圈");
			i++;
		}
	}
		
}

练习: 计算 1+2+3+4+...+100 的和
思路:将循环变量的值加起来  单独定义一个变量存放和
代码:
public class Demo{
	public static void main(String[] args) {
		//定义一个变量存放和  sum
		int sum = 0;

		int i = 1;
		while (i<=100) {
			//累加
			sum = sum+i;//sum+=i;
			i++;
		}
		System.out.println("和是:"+sum);
		
		
	}
		
}

练习:  计算 1+3+5+7+。。。+99的和
代码:
public class Demo{
	public static void main(String[] args) {
		int sum = 0;
		int i = 1;
		while (i<=99) {
			sum+=i;
			i+=2;//i=i+2
		}
		System.out.println(sum);
	}	
}


public class Demo{
	public static void main(String[] args) {
		int sum = 0;
		int i = 1;
		while (i<=100) {
			if (i%2!=0) {
				sum+=i;
			} 
			i++;
		}
		System.out.println(sum);
		
		
	}
		
}

do…while
语法:
循环变量的初始化;

do{
	循环体;
	循环条件的改变;
}while(循环条件的判断);

执行流程:
循环体执行的次数  1---n
死循环:
do{}whiletrue);
循环条件的判断可以直接是false
1.循环变量的初始化
2.循环体
3.循环条件的改变
4.循环条件的判断
	如果为true ----->2循环体---->3---->4
	false  ---->结束循环
案例:
public class Demo{
	public static void main(String[] args) {
		int i = 1;//1

		/*do {//2
			System.out.println("hello world"+i);
			i++;
		} while (false);
		*/
		while(true) {
			System.out.println("hello world");
			i++;
		}
		
	}
		
}

练习: 计算 1+3+5+7+。。。+99的和
public class Demo{
	public static void main(String[] args) {
		int sum = 0;
		int i = 1;

		do {
			sum+=i;
			i+=2;	
		} while (i<=99);
		System.out.println(sum);
		
	}
		
}

练习:
跑圈案例
for
语法:
for(循环变量的初始化; 循环条件的判断 ;循环变量的改变   ){
	循环体;
}
注意:循环变量的初始化语句只执行一次   见图示
循环体执行的次数:0--n
案例:
public class Demo{
	public static void main(String[] args) {
		for(int i = 1 ;i<=10 ;i++ ){
			System.out.println("hello world"+i);
		}
		
			
	}
		
}


案例:
public class Demo{
	public static void main(String[] args) {
		for(int i=1  ;i<=10 ;i++ ){
			System.out.println("hello world"+i);
		}
		System.out.println(i);//错误的
		
			
	}
		
}


案例:
public class Demo{
	public static void main(String[] args) {
		for(int i = 1  ;i<=10;  ){
			System.out.println("hello world"+i);
			i++;
		}
		
			
	}
		
}

案例:死循环
循环条件的判断不写true默认也是true
public class Demo{
	public static void main(String[] args) {
		for( ;true; ){
			System.out.println("hello world");
			
		}
		
			
	}
		
}

案例:  计算  10 的阶乘(1*2*3...*10public class Demo{
	public static void main(String[] args) {
		//定义一个变量
		int ji = 1;
		for(int i = 2;i<=10;i++){
			ji*=i;//ji = ji*i;
		}
		System.out.println(ji);
		
	}
		
}

总结
应用上:
while循环更适用 未知循环次数的场景
for适用已知循环次数的场景
do  while  不常用  
循环控制语句
break:结束整个循环
案例:
public class Demo{
	public static void main(String[] args) {
		for(int i = 1;i<=10;i++){
			if (i==3) {
				break;
			} 
			System.out.println("160 学的还行");
			
		}
		
	}
		
}

continue:结束本次循环 继续下次循环
案例:
public class Demo{
	public static void main(String[] args) {
		for(int i = 1;i<=10;i++){
			if (i==3) {
				continue;
			} 
			System.out.println("160 学的还行"+i);
			
		}
		
	}
		
}

循环的嵌套
概念:在一个循环中循环体是另外一个循环

语法:双重循环  for
for(int i = 1;i<=10;i++){
    for(int j =1;j<=10;j++){
        
    }
}

执行的流程:
案例:
public class Demo{
	public static void main(String[] args) {
		for(int i = 1;i<=5;i++){
			for(int j = 1;j<=4;j++){
				System.out.print("i:"+i+"---"+"j:"+j+"\t");
				
			}
			System.out.println();
			
		}
		
	}
		
}

练习:
打印如图所示的图形
****
****
****
public class Demo{
	public static void main(String[] args) {
		for(int i = 1;i<=3;i++){
			for(int j = 1;j<=4;j++){
				System.out.print("*");
			}
			System.out.println();
			
		}
		
	}
		
}

案例
*
**
***
****
代码:
public class Demo{
	public static void main(String[] args) {
		for(int i = 1;i<=4;i++){
			for(int j = 1;j<=i;j++){
				System.out.print("*");
				
			}
			System.out.println();
			
		}
		
	}
		
}
                                   j=1       k=1
案例:                             j<=i-1     k<=5-i;
                ****      i=1     0个空格   4*  
                 ***      i=2     1个空格   3*
                  **      i=3     2个空格   2*
                   *      i=4     3个空格   1*
思路:
外层循环  int i  = 1; i<=  4;i++
    
代码:
public class Demo{
	public static void main(String[] args) {
		for(int i = 1;i<=4;i++){
			//空格
			for(int j = 1;j<=i-1;j++){
				System.out.print(" ");
			}
			//*
			for(int k = 1;k<=5-i;k++){
				System.out.print("*");
				
			}
			System.out.println();
			
		}
		
	}
		
}


练习:
打印 99乘法表   i<=9   

1*1 = 1                       i = 1    
1*2 = 2  2*2 = 4              i = 2
1*3 = 3  2*3 = 6   3*3 = 9    i = 3
案例:
public class Demo{
	public static void main(String[] args) {
		for(int i = 1;i<=9;i++){
			//空格
			for(int j = 1;j<=i;j++){
				System.out.print(j+"*"+i+"="+j*i+"\t");
			}
			System.out.println();	
		}	
	}		
}

随机数
语法:
Math.random() 就是一个数  这个数  是在0----1之间的一个小数 包括0 但是不包括1
游戏
猜数字游戏:
1.系统随机的产生一个0---99的一个整数 Math.random()
2.游戏有十次机会
3.当猜中屏幕输出 “你中奖了  可以娶媳妇了” 同时结束游戏
4.当猜错 输出 你是个菜鸡 你还有几次机会
5.当机会用完 输出 请投币 再来
6.当用户输入数据为小数的时候  输出 你脑子有泡
代码:
import java.util.*;
public class Demo{
	public static void main(String[] args) {
		//1.系统随机产生一个整数
		int daAn = (int)(Math.random()*100);
		System.out.println("答案是:"+daAn);
		
		//3.获取键盘输入的数据
		Scanner s = new Scanner(System.in);
		//2.十次机会
		for(int i = 1;i<=10;i++){
			double guess = s.nextDouble();
			//判断是否是整数   (int)12.5  12 ==12.5   
			if ((int)guess==guess) {
				//猜
			//如果相等就输出 猜对了 同时系统退出、
				if (guess==daAn) {
					System.out.println("恭喜中奖了 可以娶媳妇了");
					break;
				} 
			
				//反之  输出猜错了 还有几次机会
				else{
					System.out.println("菜鸡  你还有"+(10-i)+"次机会");
				
				}
				if (i==10) {
					System.out.println("请投币 欢迎再来");
				
				} 
			
			} else {
				System.out.println("非法数据 你脑子有泡");
				
			}
		}
		
	}
		
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值