【Java入门】Day03-switch&循环语句(黑马)

#day03课堂笔记

今日内容

  • 选择结构语句
  • 循环结构语句
  • 控制跳转语句
  • 随机数

##流程控制语句

#一.switch结构:

  • 1:格式:
  • 2:执行流程
总结:
	1. 格式:
	    switch(表达式){
			  case 值1:
			    语句体1;
				break;
			  case 值2:
			    语句体2;
				break;
				....
			  default:
				 语句体n+1;
				 [break;]
				
		  }
	2. 执行流程:
		* 首先执行表达式
		* 拿着表达式的值依次跟case后面的值进行比较,如果有匹配的就执行相应的语句体;
		   遇到break就结束整个switch语句
		* 如果都没有匹配的值,就会执行default中的语句体n+1
  • switch语句的注意事项
A. 多个case后面的值是否可以重复?	
	不可以,如果一旦有重复的值,就没办法使用的是哪一个

B. switch()中可以给出的数据类型有?
		
		基本数据类型: 
			byte short int char			
		引用数据类型: 
			String
			枚举


C. default语句一定要放在最后的位置吗?		
	不一定,执行流程跟default语句放的位置没有什么关系

D. break语句可以省略吗?
	可以省略 , 但是出现case穿透的效果
  • switch语句的结束条件是?
    * break;
    * 走到最后一个{} 结束了
  • switch使用前提
    • 有一些是固定值,这个值还不能多,就考虑使用switch
  • 案例: 春夏秋冬

##二、循环结构(重点掌握)

  • 1.for循环结构:
  • 2.while循环结构:
  • 3.do…while循环结构(了解):
总结:
	
	循环有那几块内容:
		* 初始化语句   当做是定义一个变量 这个值是什么 int i = 1;  int i = 0; int i = 10
		* 条件判断语句  控制循环是否执行
		* 循环体       重复做的某一件事情
		* 条件控制语句  i++ i-- i+=2 i *=2
			
	1:for循环结构:

		格式:
			for(初始化语句;条件判断语句; 条件控制语句){
				循环体 
			}

		* 执行流程:
			* 1. 首先执行初始化语句
			* 2. 执行条件判断语句
				 true: 执行循环体
				 false: 结束for循环
			* 3. 执行循环体
			* 4. 执行条件控制语句
			* 5. 回到第二步继续判断,直到for循环结束



	案例一: 输出数据
	public static void main(String[] args) {
		 for(int i = 1 ; i <= 5 ; i++){
			   System.out.println(i);
		   }
		   
		    for(int i = 5 ; i >= 1 ; i--){
			   System.out.println(i);
		   }
	}
	案例二: 求和
	 public static void main(String[] args) {
	 	  // 求和思想
	 	   int sum = 0;
	 	   // 0 + 1 + 2 + 3 + 4 + 5
		   for(int i = 1 ; i <= 5 ; i++){
			  //  sum += i;
			  sum = sum + i;// 0 + 1;
		   }
		   System.out.println(sum);
	 }
	案例三: 求偶数和
	public static void main(String[] args) {
			int sum = 0;
		   for(int i = 1 ; i <= 100 ; i++){
			   // 求偶数和
			  if(i % 2 == 0){
			  	// 相加
				  sum += i;
			  }
		   }
		   System.out.println(sum);
	}

	案例四: 水仙花
	public class ForDemo05{
		public static void main(String[] args) {
	      
		   for(int i = 100 ; i <= 999 ; i++){
			   // 对i进行获取 个位  十位  百位
			    int ge = i % 10;
				int shi = i / 10 % 10;
				int bai = i / 100;
				// 水仙花数的特点: 每一位上立方和等于本身
				if(ge * ge * ge + shi * shi * shi + bai * bai * bai == i){
					System.out.println(i);
				}
		   }
	    }
	}


	案例五: 统计水仙花个数 // 统计思想
			

	2:while循环结构:
		格式:

		for(初始化语句;条件判断语句; 条件控制语句){
				循环体 
		}

		==============================

		初始化语句
		while(条件判断语句){

			循环体
			条件控制语句
		}
		
		* 执行流程:
			* 1. 首先执行初始化语句
			* 2. 执行条件判断语句
				 true: 执行循环体
				 false: 结束while循环
			* 3. 执行循环体
			* 4. 执行条件控制语句
			* 5. 回到第二步继续判断,直到while循环结束

		案例:珠穆朗玛峰

		public class WhileDemo01{
			public static void main(String[] args) {
		      
			  // 定义变量 统计叠了多少次
			  int count = 0;
			  // 定义纸的厚度
			  double hou = 0.1;
			  // 定义珠穆朗玛峰的高度
			  int height = 8844430; 
			  
			  // 叠多少次,能叠到珠穆朗玛峰的高度
			  // 叠到什么时候,就不叠了
			  
			  while(hou <= height){
				  hou *= 2;
				  count++;
			  }
			  System.out.println(count);
			  System.out.println(hou);
			 

		    }
		}
			

	3:do...while循环结构(了解):
		格式:

		 初始化语句
		 do{
		 	循环体
		 	条件控制语句
		 }while(条件判断语句);

			
		* 执行流程:
			* 1. 首先执行初始化语句
			* 2. 执行循环体
			* 3. 执行条件控制语句
			* 4. 执行条件判断语句
					 true: 执行循环体
					 false: 结束do...while循环
			* 5. 回到第二步继续判断,直到do...while循环结束

三、三种循环之间的区别:

  • 1:do…while循环的与for循环和while循环的最大区别是什么?
  • 2:for循环和while循环在有什么区别?
总结:
	1.do...while: 不管条件是否满足,至少会先执行一次
	  for和while循环:先判断条件,如果条件满足就会执行循环,反之一次都不执行

	2.最大区别是在于初始化语句的作用域
	  for循环:初始化语句在for循环中()中,只能是在for循环{}中使用,出了{}就不能在使用了
	  while循环:初始化语句在方法内的,这个初始化语句在方法内任意的位置都可以使用,出了这个方法就不能使用了
		
	使用的顺序:
		for--->while---> do...while

    死循环:
		for(;;){}
		for(int i = 0;;i++){

		}

		for(int i = 0 ; i <= 5;){

		}

		while(true){

		}

##四、控制循环语句

  • 1.break语句
  • 2.continue语句
总结:
	1:break语句
		break: 终止
		作用: 用来终止循环的
		使用场景:
			* switch语句中
			* 循环中: for  while do...while
			

	2:continue 语句
		作用: 跳过本次循环,继续下一次循环
		使用场景:
			* 循环中: for  while do...while

注意事项:控制循环语句,脱离使用场景,没有任何意义!


public class Demo07{
public static void main(String[] args) {
	/*
	for(int i = 20 ; i <= 100 ; i++){
		// 到65岁就不做开发了
		if(i == 65){
			break;
		}
		System.out.println("今年"+i+"岁了还在做开发...");
	}
	*/
	
	for(int i = 1 ; i <= 60 ; i++){
		// 电梯只能是在奇数层停
		if(i % 2 == 0){
			continue;
		}
		System.out.println("电梯在第"+i+"层停了...");
		
	}

}

}

##五、循环嵌套

  • 什么是循环的嵌套?
    循环中有循环
    建议:循环嵌套不要太多
    格式:
    for(){
    for(){
		}
	}
	
	
	for(){
		
		while(){
			
		}
	}
	
	while(){
		for(){
			
		}
	}


	案例需求:
		体育老师说: 围着操场跑10圈
		体育老师说: 围着操场跑10圈
		体育老师说: 围着操场跑10圈

	// 外循环代表的是体育老师说了多少次跑10圈
	for(int i = 1 ; i <= 3 ; i++){
		// 每一次,都是跑10圈
		for(int j = 1 ; j <= 10 ; j++){
			System.out.println("跑圈");
		}
	}

	循环嵌套的思想:
		外循环执行一次,内循环执行n次

	打印九九乘法表

##六、Random 随机数
Random随机数使用步骤?
* 导包
import java.util.Random

		* 创建Random对象: 
			Random r = new Random();
			
		*  随机数据
			nextInt(int n); 
			int num = nextInt(100); // 随机的范围是[0,100)
			int num = nextInt(100)+1;// 随机的范围是[0,99]+1 -->[1,100]
			
	总结公式:
		int number = r.nextInt(最大值-最小值+1)+最小值;

##案例: 猜数字
需求:
程序自动生成一个1-100之间的数字,使用程序实现猜出这个数字是多少?
当猜错的时候根据不同情况给出相应的提示

	如果猜的数字比真实数字大,提示你猜的数据大了
	如果猜的数字比真实数字小,提示你猜的数据小了
	如果猜的数字与真实数字相等,提示恭喜你猜中了

public class RandomTest {
	public static void main(String[] args) {
		
			//要完成猜数字的游戏,首先需要有一个要猜的数字,使用随机数生成该数字,范围1到100
			Random r = new Random();
			int number = r.nextInt(100) + 1;
			// 默认的随机的范围是在int整数范围之内
			// int number = r.nextInt();
			
		System.out.println(number);
		while(true) {
			
			//使用程序实现猜数字,每次均要输入猜测的数字值,需要使用键盘录入实现
			Scanner sc = new Scanner(System.in);
			
			System.out.println("请输入你要猜的数字:");
			int guessNumber = sc.nextInt();
			
			//比较输入的数字和系统产生的数据,需要使用分支语句。这里使用if..else..if..格式,根据不同情况进行猜测结果显示
			if(guessNumber > number) {
				System.out.println("你猜的数字" + guessNumber + "大了");
			} else if(guessNumber < number) {
				System.out.println("你猜的数字" + guessNumber + "小了");
			} else {
				System.out.println("恭喜你猜中了");
				break;
			}
		}
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值