三、Java 流程语句

1、switch case 结构
2、while 循环
3、do while 循环
4、for 循环
5、break continue

1、switch case 结构

	 //例一 
	 int x =3; 
	 switch(x)
	 {
	 		case 1:
	 			System.out.println("输入的是1");
	 			break;
	 	  case 2:
	 	  	System.out.println("输入的是2");
	 	  	break;
	 	  case 3:
	 	  	 	System.out.println("输入的是3");
	 	  	 	break;
	 	  default:
	 	     	System.out.println("输入的不是1 2 3中间的一个"); 	
	 }
	 
	 //例二 本例只有在jdk7或7以上才有效
		 	String name="晋三";
			switch(name)  
			{
				case "三":
					System.out.println("1");
				case "平":
					System.out.println("2");
				case "马":
					System.out.println("3");
			}
		 
		 注意
		 1) 变量的类型只有4种, byte , short,int ,char , 在jdk7以后,可以用String类型,但 6 不行
		 2) default 可以放在任意位置
		 3) 如果没有break,程序将往下顺次执行
		 4) 如果中间有多条语句,可以用花括号括起来,也可以不括
		 
		//例三 输入一个月分,打印属于哪个季度,要求用switch case 做
		 public static void main(String[] args) {
				Scanner scan=new Scanner(System.in);
				System.out.println("请输入一个月份");
				int month=scan.nextInt();
				
				switch(month)
				{
				case 1:
				case 2:
				case 3:
					System.out.println("一季度");
					break; 
				case 4:
				case 5:
				case 6:
					System.out.println("二季度");
					break; 
				case 7:
				case 8: 
				case 9:
					System.out.println("三季度");
					break; 
				case 10: 
				case 11: 
				case 12:
					System.out.println("四季度");
					break; 
				default:
					System.out.println("别开玩笑");
				}
			}

2、while 循环

 ==格式
 while(条件表达式)   //千万注意,这里没有 ;
 {
 	  执行语句
 }
 
 //例一 打印10排 =====================
  int x=0;
		while(x<10);
		{
			System.out.println("==================");
			x=x+1;
		}
		
	 //例二 打印 1 到 12 月
			int month=1;
			while(month<=12)
			{
				System.out.println(month +"月");
				month++;
			}

 //例三 输入一个数字,如果不是 8888 ,则输出该数字,并继续输入,如果是8888,则停止程序
  Scanner scan=new Scanner(System.in);
		int num=scan.nextInt();
		while(num!=8888)
		{
			System.out.println("输入的数字是"+num);
			num=scan.nextInt();  //让用户继续输入
		}
		System.out.println("ok"); 

3、do while 循环

		//和while有什么区别 do while,先执行,后判断 (先毒打,再审问)
		== 格式 
		do
		{
			 执行语句
		}
		while(条件表达式);   //注意,要有这个分号
	
	//例一	
		int x=0;
		do
		{
			System.out.println("===========================");
			x++;
		}
		while(x<10);
		
	//例二 输入一个数字,把它打印出来,直到输入的数字是8888 的时候才结束程序
		 canner scan=new Scanner(System.in);
			int x=0;
			
			do{
				x=scan.nextInt();
				System.out.println(x);
			}
			
			while(x!=8888);
			
			System.out.println("---ok-----");
			
  //例三 随机生成 10个整数,把它们中间最大的取出来
   	public static void main(String[] args) {
		//	System.out.println(Math.random());  //Math.random() 生成的是1-0之间的一个小数 ,该值大于等于 0.0 且小于 1.0。	
		//	System.out.println((int)(Math.random()*10));  //生成一个9-0之间的整 数
			
			int max=0;  //用来装最大的数
			int i=0 ; 
			
			do{
				int num=(int)(Math.random()*10);
				System.out.println(num);
				
				if(i==0)
				{  //如果是第一次
					max=num;
				}
				else{
					if(max< num)
					{
						max=num;
					}
				}
				
				i++;
			}
			
			while(i<10);
			
			System.out.println("-------------------------");
			System.out.println("最大的数是"+max);
			 
		}

4、for 循环

==格式
for(初始化表达式;  循环条件表达式; 循环后的操作表达式)
{
		执行语句
}
	
	
	//例一  打印 0 -100
	for(int i=0; i<=100; i++ )
	{
		System.out.println(i);
	}
	
	注意两点
	== 初始化表达式只执行一次
	== 上例的i是个局部变量,只对for循环内有效
	
	//例二 
			for(System.out.println("初始化的语句"); System.out.println("判断的语句"); System.out.println("循环后执行的语句") )
			{
					System.out.println("执行语句");
			}
			 
			能编译通过吗?  不能,因为 System.out.println("判断的语句")不是条件语句
	 
	//例三 下面程序执行结果
	
			int x=1;
			
			for(System.out.println("初始化的语句");x<3; System.out.println("循环后执行的语句") )
			{
					System.out.println("执行语句");
					x++;
			}
			
							 
			初始化的语句
			执行语句
			循环后执行的语句
			执行语句
			循环后执行的语句
			
	//例四 无限循环
			  for(;; ){
					System.out.println("---");
				}
	
				System.out.println("0000");  //Unreachable code 不可达的代码
				
				 如果用while 可以这样写
				 while(true)
				 {
				 		....
				 }
			 
	//例五 1+2+3+4 ... +100 
			int s=0; //存储最后的和
	
			for (int i = 0; i <=100; i++) 
			{
				s=s+i;
			}
			
			System.out.println("和是" +s);  //5050
			
	//例六 求  1-10000 之间的所有的能被99整除的数的个数
		 int count=0;
			
			for(int i=0;i<10000;i++)
			{
				if(i%99==0)
				{
					count++;
					System.out.println(i);
				}
			}	
	
			System.out.println("一共有" +count +"个");  //102 个
			
 //例七 用嵌套循环打印
	 	//i代表行 , j 代表列
		for(int i=0;i< 10;i++)
		{
			for(int j=0;j<5;j++)
			{
				System.out.print("#");
			}
			System.out.println();  //打印换行
		}
		
	  #####
		#####
		#####
		#####
		#####
		#####
		#####
		#####
		#####
		#####
		
		练习 打印如下图形
				##########
			  #########
			  ########
			  #######
			  ######
			  #####
			  ####
			  ###
			  ##
			  #
		
		练习 打印九九乘法表
			1*1=1	
			1*2=2	2*2=4	
			1*3=3	2*3=6	3*3=9	
			1*4=4	2*4=8	3*4=12	4*4=16	
			1*5=5	2*5=10	3*5=15	4*5=20	5*5=25	
			1*6=6	2*6=12	3*6=18	4*6=24	5*6=30	6*6=36	
			1*7=7	2*7=14	3*7=21	4*7=28	5*7=35	6*7=42	7*7=49	
			1*8=8	2*8=16	3*8=24	4*8=32	5*8=40	6*8=48	7*8=56	8*8=64	
			1*9=9	2*9=18	3*9=27	4*9=36	5*9=45	6*9=54	7*9=63	8*9=72	9*9=81	

5、break continue

break 用于循环语句或 switch case 语句中,表示中断循环或结束switch case中的case    
continue 用于循环结构

//例一 把s 从0开始到1000之间开邕累加 ,和大于3000  结束,输出这时s 累加了多少次
	int s=0;	
		for (int i = 0; i <1000; i++) 
		{
			s=s+i;
			if(s>3000){
				System.out.println("当前程序累加了" +i +"次"+"当前累加的值是 "+s);
				break; 
			}
		}
		
		//例二  一共有5 个人,每个人分 10 块糖,但就是看第三个人不顺眼,不给他分
		for(int i=1;i<=5;i++)
		{
			for (int j = 0; j <10; j++)
			{
				if(i==3){
					break; //在多层循环中,结束的是离的最近的一层
				}
				
			    System.out.println("第"+i+"个人分到第" +j+"块糖");
			}
		}
		
		//例四 看第三个人超级不顺眼,如果碰上他,后面的糖全不分了
		1) break 写在外层
		
		2) 使用标号
			AAA:for(int i=1;i<=5;i++)
					{
						BBB:for (int j = 0; j <10; j++)
						{
							if(i==3){
								break AAA; //程序直接把AAA标示的循环结束了
							}
							
						    System.out.println("第"+i+"个人分到第" +j+"块糖");
						}
					}
					
		  
		//例一 continue  	取 0-100 之间所有的5的倍数,打印出来
				for(int i=1;i<100;i++)
				{
					if(i%5 !=0)
					{
						continue;  //无条件结束当前这次循环,继续一下次循环
					}
					
					System.out.println(i);
				}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值