Java基础05 (switch while do..while for循环)

目录

一. switch 多重条件分支

二. while 循环

 三. do...while 循环

一些案例

四. for 循环

1. 操作数组

2. for each

3. 嵌套循环

五. break和continue

1. break

 2. continue

 小结


一. switch 多重条件分支

switch语句根据switch (表达式)计算的结果,跳转到匹配的case结果,然后继续执行后续语句,直到遇到break结束执行。

语法格式:

switch(表达式) {
		case 常量1:
		    	语句1
		case 常量2:
		    	语句2
				......
		case 常量n:
		    	语句n
		default:
				语句n+1
		}

注意事项:

●switch具有语法的穿透(表达式等于某个常量,进入到此常量后对应的语句块后,后面case不会比较遇到break停下来,switch结束运行)

●表达式:--基本数据类型:byte short char int
               --引用:String--1.7后   枚举

●case后面的常量不能重复,case后面的常量不能是变量

●switch语句还可以匹配字符串。字符串匹配时,是比较“内容相等”

	Scanner sc = new Scanner(System.in);
		System.out.println("请选择~");
		int option = sc.nextInt();
		switch (option) {
		case 1:
			System.out.println("1v1");
			break;
		case 2:
			System.out.println("多v多");
			break;
		case 3:
			System.out.println("退出游戏");
			break;
		default:
			System.out.println("其他情况");
			break;
		}


二. while 循环

while循环在每次循环开始前,首先判断条件是否成立,如果条件true,就把循环体内的语句执行一遍,如果条件表达式结果为false,那就直接跳到while循环的末尾,继续往下执行。

语法格式:

//while循环
while(条件判断){
		循环体,条件为true执行
}
//避免死循环

注意事项:

●while循环先判断循环条件是否满足,再执行循环语句
●while循环可能一次都不执行
●编写循环时要注意循环条件,并避免死循环

	    int num = 1;
		while (num <= 5) {
			System.out.println("还想继续考研 第" + num++ + "次");
		}

 三. do...while 循环

do while循环则是先执行循环,再判断条件,条件满足时继续循环,条件不满足时退出。所以,do while循环会至少循环一次。

语法格式:

do {
    执行循环语句
} while (条件表达式);

注意事项:

●do while循环先执行循环,再判断条件
●do while循环会至少执行一次

//1到100的累加求和,
		int sum = 0;
		int i = 1;
		do {
			sum += i++;
		} while (i <= 100);
		System.out.println(sum);//5050

区别: 

●while() {} 先判断条件是否满足 再去进行循环体内容的执行
●do {} while();先执行循环体内的内容 再判断条件是否满足

一些案例

1.随机城市名称。
●假设有字符串数组,保存若干个城市名称。
●从数组中随机返回一个城市名称
●询问用户是否喜欢?(Y/N),如果输入N后,则继续随机返回;如果直到用户输入Y,程序结束

String[] city = {"西安","杭州","上海","大连","北京"};
		Scanner sc =new Scanner(System.in);
		String str;//用来保存用户输入内容
		do {
            //随机一个下标 取出数组中的内容
			System.out.print(city[(int)(Math.random()*city.length)]);	
			System.out.println("是否喜欢这个城市?(Y/N)");
            //用户输入
			 str= sc.next();
		} while ("N".equalsIgnoreCase(str));//根据判断条件决定循环是否继续

2模拟生成汽车牌照号码。
●汽车牌照号码由字母和数字随机组成,长度为5位
●随机的字母和数字组合,可以通过UUID.randomUUID().toString()产生
●每次产生后,由用户决定是否继续产生?(Y/N),如果输入Y后,则继续生成;如果用户输入N,程序结束

Scanner sc = new Scanner(System.in);
		String str;
		do {
			System.out.print(UUID.randomUUID().toString().substring(0, 5));
			System.out.println(" 是否喜欢这个车牌号?(Y/N)");
			str = sc.next();
		} while ("N".equalsIgnoreCase(str));

四. for 循环

for循环的功能非常强大,它使用计数器变量实现循环。for循环会先初始化计数器变量,然后,在每次循环前,通过计数器变量检测循环条件,在每次循环后更新计数器变量。计数器变量通常命名为i。

语法格式:

for( ①初始化变量;②条件判断为true;④步进语句){
 		③循环体
}
①:初始化变量 数据类型 变量名=值
②:条件判断:返回布尔值
③:循环体:要重复执行的事情 ②的结果为true,执行循环体,为false退出循环
④:步进语句:改变初始化变量的值

执行顺序:1,2,3,4,
以后的每次:234

注意事项:

for循环体内只有一条语句的时候,{}可以省略 ----不推荐

    for (int i = 0; i < 5; i++) 
			System.out.println("还想继续考研"+i);
			System.out.println("11111111");

●初始化变量 ,条件判断(默认为true),步进语句均省略

        //死循环           
             for (int i = 0; ;) {
				System.out.println(i);
			}
			
			for (; ; ) {
				System.out.println("");
			}

1. 操作数组

String[] nameArray = { "张飞", "曹操", "关羽", "刘备", "张辽", "诸葛亮", "颜良", "文丑", "郭嘉" };
		// 正序遍历数组
		for (int i = 0; i < nameArray.length; i++) {
			System.out.print(nameArray[i] + "  ");
		}
		System.out.println();

		// 逆序遍历数组
		for (int i = nameArray.length-1; i >=0 ; i--) {
			System.out.print(nameArray[i] + "  ");
		}
		System.out.println();
		
		// 正序遍历数组前半部分
		for (int i = 0; i < nameArray.length/2; i++) {
			System.out.print(nameArray[i] + "  ");
		}
		System.out.println();
		// 逆序遍历数组后半部分
		for (int i = nameArray.length-1; i >=nameArray.length/2 ; i--) {
			System.out.print(nameArray[i] + "  ");
		}

2. for each

for each循环的变量n不再是计数器,而是直接对应到数组的每个元素。for each循环的写法也更简洁。

语法格式:

for (数据类型 变量名: 数组名) {
			执行循环语句
		}
        int[] ns = {1,2,3,4,5,6,7};
		String[] nameArray = { "张飞", "曹操", "关羽", "刘备", "张辽", "诸葛亮", "颜良", "文丑", "郭嘉" };
		
//		: 前面,数组的数据类型 变量名
//		: 后面,数组名
		for (int  i : ns) {
			System.out.print(i);
		}
		System.out.println();
		for (String str : nameArray) {
			System.out.print(str);
		}

3. 嵌套循环

口诀:外层控制行,内层控制列,外层走一次,里面走一圈

        for (int i = 0; i < 5; i++) {
			for (int j = 0; j < 6; j++) {
				System.out.print("* ");
			}
			System.out.println();
		}

        for (int i = 0; i < 5; i++) {
			for (int j = 0; j <=i; j++) {
				System.out.print("* ");
			}
			System.out.println();
		}

 99乘法表

        for (int i = 1; i <= 9; i++) {
			for (int j = 1; j <=i; j++) {
//				System.out.print(j+"*"+i+"="+(i*j)+" ");
				System.out.printf("%d*%d=%-2d ",i,j,(i*j));
			}
			System.out.println();
		}

五. break和continue

1. break

在循环过程中,可以使用break语句跳出当前循环.结束循环

       //break跳出当前循环 --- 一般情况和if配套使用
         int sum = 0;
		for (int i = 0; ; i++) {
			sum+=i;
			if (i==10) {
				break;
			}
		}
		System.out.println(sum);//55

 2. continue

continue是提前结束本次循环,直接继续执行下次循环

//continue ---跳出本次循环 执行下一次循环
		for (int i = 0; i <=10; i++) {
			if ((i&1)==1) {
				continue;
			}
			System.out.print(i);//0246810
		}

●break和continue关键字,操作的是当前离他最近的循环

●操作外层循环,别名标识     名字:  --- 同变量名命名方法

//break和continue关键字,操作的是当前离他最近的循环,
		//操作外层循环,别名标识
		out:for (int i = 0; i < 10; i++) {
			inner:for (int j = 0; j < 10; j++) {
				if(j==3) {
					//break out;
					continue out;
				}
				System.out.print(i+"_"+j+"  ");
			}
			System.out.println();
		}

 小结

●break语句可以跳出当前循环
●break语句通常配合if,在满足条件时提前结束整个循环
●break语句总是跳出最近的一层循环
●continue语句可以提前结束本次循环
●continue语句通常配合if,在满足条件时提前结束本次循环

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冯诺依曼转世

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值