Java 第五讲 笔记:循环(while、do-while、for),break,continue

一、循环控制语句

1、while类循环

1.1、while循环

格式:

while(/*布尔表达式*/){
	//循环体
}

下面放案例:

@Test
	public void t1(){ //输出1-5
		int num=0;
		while(++num<=5){
			System.out.println(num);
		}
	}
@Test
	public void t2(){ //while循环求0—100之间的偶数和
		int num=0;
		int total=0;
		while(num<=100){			
			System.out.print(num+" ");
			total+=num;
			num+=2;
		}
		System.out.println("\n0—100之间的偶数和为:"+total);
	}
@Test
	public void t3(){ //打印50张电影票
		int num=0;
		while(num<50){
			System.out.println("电影票");
			num++;
		}
		System.out.println("一共有"+num+"张电影票");
	}
@Test
	public void t4(){ //老王跑步,五圈休息
		System.out.println("老王每天会起来跑步:");
		int num=1;
		while(num<=10){
			System.out.println("第"+num+"圈");
			if(num==5){
				System.out.println("休息五分钟");
			}		
			num++;
		}
	}
@Test
	public void t10(){ //同学复习
		String gaiNian="";
		String anLi="";	
		int i=5;
		while(i>0){
			System.out.println("离月考还有"+i+"天了");
			i--;
			System.out.println("请输入今天的概念成绩和理论成绩:");
			gaiNian=new Scanner(System.in).next();
			anLi=new Scanner(System.in).next();
			System.out.println("今天的概念:"+gaiNian+" 今天的案例:"+anLi);
		}
		System.out.println("明天就要考试了,加油!");
	}
@Test
	public void t18(){ //密码输入
		String name="";
		int pwd=0;
		int cnt=3;
		while(cnt>=0){
			System.out.println("请输入用户名和密码:");
			name=new Scanner(System.in).next();
			pwd=new Scanner(System.in).nextInt();
			if("tom".equals(name)&&pwd==123){
				System.out.println("欢迎使用,登陆成功!");
				break;
			}else{
				System.out.println("输入错误,您还有"+cnt+"次机会");
			}
			cnt--;
		}
		if(cnt<0){
			System.out.println("很抱歉,您的账户已被锁定!");
		}
	}
@Test
	public void t19(){ //小芳的妈妈每天给她2.5元钱,她都会存起来,但是,每当这一天是存钱的第5天或者5的倍数的话,她都会花去6元钱,请问,经过多少天,小芳才可以存到100元钱。
		double add=2.5;			   		
		double total=0;
		int days=0;
		while(total<100){
			total+=add;
			days++;
			if(days%5==0){
				total-=6;	
			}
		}
		System.out.println("一共需要:"+days+"天,金额为:"+total);
	}

1.2、do-while循环

格式:

do{
	//循环体
}while(/*布尔表达式*/);

特点:相比于while循环,会先运行循环体一次。

下面放案例:

@Test
	public void t5(){ //测试do-while循环
		int num=5;
		do{
			System.out.println(num);
			num++;
		}while(num<5);
		System.out.println("完成");
	}

2、for循环

格式:

for(/*循环变量赋初值*/;/*循环条件*/;/*循环变量增值*/){
	//循环体
}

下面放案例:

@Test
	public void t6(){  //for循环求0—100之间的偶数和
		int sum=0;
		for(int i=0;i<=100;i+=2){
			System.out.print(i+" ");
			sum+=i;
		}
		System.out.println("\n0—100之间的偶数和为:"+sum);
	}
@Test
	public void t8(){ //5门课输入和求均分
		double grade=0;
		double sum=0;
		System.out.print("请输入姓名:");
		String name=new Scanner(System.in).next();
		for(int i=1;i<=5;i++){
			System.out.print("请输入第"+i+"门课的成绩:");
			grade=new Scanner(System.in).nextInt();
			sum+=grade;
		}
		System.out.println(name+"的平均考试成绩为:"+sum/5);
	}
@Test
	public void t9(){ //用continue将100-200之间的不能被3整除的数
		for(int i=100;i<=200;i++){
			if(i%3==0){
				continue;
			}else{
				System.out.println(i);
			}
		}
	}
@Test
	public void t11(){ //超市年龄调查
		double old=0;
		double young=0;
		double age=0;
		for(int i=1;i<=10;i++){
			System.out.println("第"+i+"位顾客的年龄为:");
			age=new Scanner(System.in).nextDouble();
			if(age>=30){
				old++;
			}else{
				young++;
			}
		}
		System.out.println("30岁以上的顾客占比:"+old*10+"% 30岁以下的顾客占比:"+young*10+"%");
	}
@Test
	public void t15(){ //1-100之间奇数和
		int total=0;
		for(int i=1;i<=100;i++){
			if(i%2==1){
				System.out.println(i);
				total+=i;
			}
		}
		System.out.println("和为"+total);
	}
@Test
	public void t16(){ //手动输入两个数字m和n,运算求出m~n之间所有偶数的和。 
		System.out.println("请输入数字1和数字2:");
		int num1=new Scanner(System.in).nextInt();
		int num2=new Scanner(System.in).nextInt();
		int total=0;
		for(int i=num1;i<=num2;i++){
			if(i%2==0){
				System.out.println(i);
				total+=i;
			}
		}
		System.out.println("和为"+total);
	}
@Test
	public void t17(){ //统计1-1000对3整除余2,对5整除余3,对7整除余2。
		int num1=0;
		int num2=0;
		int num3=0;
		for(int i=1;i<=1000;i++){
				if(i%3==2){
					num1++;
				}
				if(i%5==3){
					num2++;
				}
				if(i%7==2){
					num3++;
				}	
		}
		System.out.println("1-1000以内\n对3整除余2的数为:"+num1+"个\n对5整除余3的数为:"+num2+"个\n对7整除余2的数为:"+num3+"个");
	}

3、嵌套循环

顾名思义,循环之间互相嵌套,一定不要超过三层嵌套!

下面放一些案例:

@Test
	public void t7(){ //输出上金字塔乘法表,下金字塔见t20
		 for(int i=1;i<10;i++){
			 for(int j=1;j<=i;j++){
				 System.out.print(j+"*"+i+"="+(i*j)+"\t");
			 }
			 System.out.println();
		 }
	}
@Test
	public void t20(){ //输出下金字塔式乘法表,上金字塔见t7
			for(int i=1;i<=9;i++){ //表示行数,走几趟
			for(int j=i;j<=9;j++){ //表示列数,每趟走几次
				System.out.print(j+"*"+i+"="+(i*j)+"\t");
			}
			System.out.println();
		}		
	}
@Test
	public void t12(){ //输出*矩形
		for(int i=0;i<5;i++){
			for(int j=0;j<5;j++){
				System.out.print("* ");
			}
			System.out.println();
		}
	}
@Test
	public void t13(){ //输出*正金字塔
		for(int i=0;i<10;i+=2){
			for(int j=0;j<=i;j++){
				System.out.print("*");
			}
			System.out.println();
		}
	}
@Test
	public void t14(){ //输出*倒金字塔
		for(int i=0;i<5;i++){
			for(int j=5;j>i;j--){
				System.out.print("*");	
			}
			System.out.println();
		}
	}

4、break和continue

4.1、break

特点:直接跳出循环。

	public void t21(){ //跑步问题
		for(int i=1;i<=10;i++){
			if(i==5){
				System.out.println("我已经跑了5圈了,跑不动了!");
				break; //5圈以后不会再跑了,直接跳出
			}
			System.out.println("这是我跑的第"+i+"圈");
		}	
	}

4.2、continue

特点:继续循环。

@Test
	public void t21(){ //跑步问题
		for(int i=1;i<=10;i++){
			if(i==5){
				System.out.println("这是我跑的第5圈");
				System.out.println("我已经跑了5圈了,休息一下!");
				continue; //5圈休息一下,然后继续跑
			}
			System.out.println("这是我跑的第"+i+"圈");
		}	
	}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值