B005-选择结构&循环结构

发布于:2024-04-14 ⋅ 阅读:(85) ⋅ 点赞:(0)

选择结构

满足一定条件以后,可以执行相关的流程

if 选择结构
If
/**
 * 选择结构:满足一定条件以后,可以执行相关的流程
 * if结构:
 *    语法:
 *   if(布尔类型的值或者表达式){
 *      	功能语句;
 *   }
 *    执行流程:当判断条件为true的时候,执行花括号中的功能语句
 */
public class _01_IfDemo {

	public static void main(String[] args) {
		//当个人账户余额大于10000000的时候  打印一句话,:可以混吃等死
		//定义一个变量 用来保存余额
		double  money = 19999999.5;
		if(money>10000000){
			System.out.println("可以混吃等死");
		}
	}
}
if else
/**
  * 选择结构:满足一定条件以后,可以执行相关的流程
 * if结构:
  *    语法:
 *   if(布尔类型的值或者表达式){
 *      	功能语句;
 *   }else{
 *   		功能语句;
 *   }
  *    执行流程:当判断条件为true的时候,执行花括号中的功能语句,如果为false,则执行else中的代码
 */
public class _02_IfDemo2 {

	public static void main(String[] args) {
		//当个人账户余额大于10000000的时候  打印一句话:可以混吃等死;如果不大于 则打印 你需要努力了
		//定义一个变量 用来保存余额
		double  money = 19999999.5;
		if(money>10000000){
			System.out.println("可以混吃等死");
		}else{
			System.out.println("你需要努力了");
		}
		// 使用if else结构 判断一个数是否为3的倍数
		int x  = 7;
		if(x%3 == 0){
			System.out.println("x为3的倍数");
		}else{
			System.out.println("x不为3的倍数");
		}
	}
}
if else-if
/**
 *  if (判断条件) {
 *    	功能语句
 *  } else if (判断条件) {
 *    	功能语句
 *  } else if (判断条件) {
 *  	功能语句
 *  } .....
 *  	执行流程:从上往下,依次判断是否满足条件  当条件满足  执行花括号中的代码
 */
public class _03_IfElseIfDemo {

	public static void main(String[] args) {
		/*
		  * 手机电量
		  *  当电量大于80%  打印 性能模式
		  *  当电量大于20% 小于80% 打印 均衡模式
		  *  当小于20%  大于10%  打印省电模式
		  *  当小于 10%  打印  请请尽快充电
		 */ 
		int battery = 80;
		if (battery >= 80) {
			System.out.println("性能模式");
		} else if (battery < 80 && battery > 20) {
			System.out.println("均衡模式");
		} else if (battery > 10 && battery <= 20) {
			System.out.println("省电模式");
		} else if (battery < 10) {
			System.out.println("请尽快充电");
		}
	}
}
if else-if else
/**
 *  if (判断条件) {
 *   	 功能语句
 *  } else if (判断条件){
 *   	 功能语句
 *  } else if (判断条件){
 *  	 功能语句
 *  } else {
 *   	 功能语句
 *  }
  *     执行流程:从上往下,依次判断是否满足条件  当条件满足  执行花括号中的代码,当上面的条件都不满足的时候  执行else中的代码
 */
public class _04_IfElseIfDemo2 {

	public static void main(String[] args) {
		/*
		 * 手机电量
		 *  当电量大于80%  打印 性能模式
		 *  当电量大于20% 小于80% 打印 均衡模式
		 *  当小于20%  大于10%  打印省电模式
		 *  当小于 10%  打印  请请尽快充电
		 *  其他情况  打印   电池异常  即将爆炸
		 * */ 
		int battery = -180;
		if (battery <= 100 && battery >= 80) {
			System.out.println("性能模式");
		} else if (battery < 80 && battery > 20) {
			System.out.println("均衡模式");
		} else if (battery > 10 && battery <= 20) {
			System.out.println("省电模式");
		} else if (battery < 10 && battery >= 0) {
			System.out.println("请尽快充电");
		} else {
			System.out.println("电池即将爆炸,请抱紧");
		}
	}
}
if特殊写法
/**
 *  if (判断条件) {
 *     	功能语句;
 *  }
 */
public class _06_IfDemo {
	public static void main(String[] args) {
		// if特殊写法
		if(true);//没有意义

		// 如果没有花括号 if结构只管到 第一个分号结束 可读性差
		if (true)
			System.out.println("嘿嘿嘿");
		System.out.println("呵呵呵");
//	}
//}
		// 判断一个属是否为奇数
		int x = 5;
		if (x % 2 == 0) {
			System.out.println("偶数");
		} else {
			System.out.println("奇数");
		}
		// 特殊写法
		int x2 = 3;
		if (x2 % 2 == 0)
			System.out.println("这是偶数");
		else
			System.out.println("这是奇数");
	}
}
switch选择结构
/**
 * switch结构
  *  语法:
 * switch(key){
 *   case value1:
 *		功能语句;
 *      break;
 *   case value2:
 *   	功能语句;
 *      break;
 *   ......
 *   default:
 *		功能语句;
 *      break;
 * }
 * key: 
 *  jdk1.5 : byte short  char int 这几种类型的常量或者变量 
 *  jdk1.6: 枚举
 *  jdk1.7: String
  * 执行流程:
 *   将key的值和 case中的value值进行比较,如果相等  则执行当前case中的功能语句,然后找到break 跳出当前选择结构
 *   如果case中没有满足的value,此时执行default中的功能语句
 *   key与value的类型 必须一致
 */
public class _07_SwitchDemo {

	public static void main(String[] args) {
		/*
		 * 假设一周七天
		 *  如果是周一:  打印  学习java
		 *  如果是周二:  打印  学习java
		 *  如果是周三:  打印  全天自习
		 *  如果是周四:  打印  学习java
		 *  如果是周五:  打印  学习java
		 *  如果是周六:  打印  和女朋友一起学习
		 *  如果是周天:  打印  女朋友和我一起学习
		 *  其他情况:	打印  日期不对
		 */
		
		//定义一个变量  用来保存星期几
		int  x = 17;
		switch (x) {
		case 1:
			System.out.println("学习java");
			break;
		case 2:
			System.out.println("学习java");
			break;
		case 3:
			System.out.println("全天自习");
			break;
		case 4:
			System.out.println("学习java");
			break;
		case 5:
			System.out.println("学习java");
			break;
		case 6:
			System.out.println(" 和女朋友一起学习");
			break;
		case 7:
			System.out.println("女朋友和我一起学习");
			break;
		default:
			System.out.println("日期不对");
			break;
		}
	}
}
注意事项
/** 注意事项:
 * 5.break可以省略,但会导致后续case条件判断失效  按照从上到下顺序执行,直到找到第一个break跳出选择结构
 * 	 如果没有找到  执行到末尾 自动跳出选择结构
 * 1.每个case之间顺序可以交换 不影响代码运行 
 * 2.default不一定放在末尾 在所有case失效的时候就会被执行到
 * 6.跳出选择结构的条件是执行到末尾  或者遇到第一个break为止
 * 3.case中值与 key类型必须一致
 * 4.最后一个break可以省略,但不建议
 */

循环结构

重复的做一件事情 但是需要有终止条件

while循环
/**
  *  循环 : 重复的做一件事情  但是需要有终止条件  
 *  while循环:
 *	  语法:
 *    while(布尔类型的值或者表达式){
 *       	功能语句;
 *    }
 *	执行流程:判断条件是否成立,如果成立,执行功能语句,如果不成立,循环终止
 */
public class _09_WhileDemo {

	public static void main(String[] args) {
		//打印 10 句   "你们真棒"
		//定义一个变量  用来计数
		int x = 0;
		while (x < 5) {
			System.out.println("你们真棒");
			// 计数器加1
			x = x + 1;
		}
	}
}
do…while循环
/**
 * do。。。while
 *	语法:
 *   do{
 *		功能语句;
 *   }while(布尔类型的值或表达式);
 *	执行流程:先执行do中的功能语句,再进行条件的判断,如果条件成立,继续执行do中的功能语句,直到条件不成立,跳出循环
 */
public class _10_DoWhileDemo {

	public static void main(String[] args) {
		//使用dowhile打印1到10之间的数字
		//定义变量 从1开始
		int i = 1;
		do {
			System.out.println("i: " + i);
			// 进行自增
			i++;
		} while (i <= 10);

//		1.求出10以内2的倍数的数字 和 个数。
		// 定义一个变量 专门用来计数
		int num = 0;
		// 拿到1~10之间的所有数字
		int j = 1;
		do {
			// 获取1到10之间的偶数
			if (j % 2 == 0) {
				System.out.println("j: " + j);
				num++;
			}
			// 自增
			j++;
		} while (j <= 10);
		System.out.println(num);
//		2.求出 1-10的所有偶数的和
		// 定义变量 用来存储和
		int sum = 0;
		int x = 1;
		do {
			if (x % 2 == 0) {
				// System.out.println(x);
				sum += x;// sum = sum+x;//0+2 2+4 6+6 12+8 20+10
			}
			x++;
		} while (x <= 10);
		System.out.println(sum);
	}
}
for循环
/**
 *  for(A;B;D){
 *     C;
 *  }
 *  A: 初始条件,B: 判断条件,C: 功能语句,D: 循环后语句
 *	执行流程:
 *		第一次:  A-->B-->C-->D
 *		第二次:  B-->C-->D
 *		......
 *		第N次:  B (条件不成立 跳出循环)
 *		判断次数永远比循环次数多一次
 */
public class _12_ForDemo {

	public static void main(String[] args) {
		// 使用while循环打印 1到10之间的数字
		// 定义一个变量 从1开始
		/*
		 * int x = 1;//初始条件 while(x<=10){//判断条件 System.out.println(x);//功能语句;
		 * x++;//循环后语句 }
		 */
		// 使用for循环 打印1到10之间的数字
		for (int y = 1; y <= 10; y++) {
			System.out.print("y: " + y + ",");
		}
		System.out.println("----------------------------------");
		// 使用for循环 打印1到10之间的偶数
		for (int y = 1; y <= 10; y++) {
			if (y % 2 == 0) {
				System.out.print("y2: " + y + ",");
			}
		}
		System.out.println("----------------------------------");
		for (int i = 2; i <= 10; i += 2) {
			System.out.print(i + "  ");
		}
	}
}
for的作用域
/**
 * {}是作用域的分界线   看到{}就联想到作用域
 */
public class _14_ForScope {
     //int a = 6 ;
	public static void main(String[] args) {
		//int x = 7;
		
		//打印1到10之间的数字
		/*for(int i=1;i<11;i++){
			System.out.println(i);
		}*/
		//System.out.println(i);
		
		int j;
		for (j = 1; j++ <= 10; j += 2) {
			System.out.println("j=" + j);
		}
		System.out.println(j);
	}
}
嵌套循环
public class _15_QTFor {

	public static void main(String[] args) {
		/*  打印如下图形
		 *  *****
		 *  *****
		 *  *****
		 *  *****
		 *  *****
		 * */
		// 优化1
		for (int i = 1; i < 6; i++) { // 循环控制打印的行数
			// 定义内层循环 控制每行*的颗数 内层循环就是每一行的内容
			for (int j = 1; j < 6; j++) {
				System.out.print("*");
			}
			// 循环一次以后换行
			System.out.println(" ");
		}
		
		/*   1              外层 1   i=1
		 *   1 2          外层 2   i=2
		 *   1 2 3      外层 3   i=3
		 *   1 2 3 4
		 *   1 2 3 4 5
		 * */
		for (int i = 1; i < 6; i++) {// 外层循环控制行数
			// 内层循环 控制每一行的内容
			for (int j = 1; j <= i; j++) {
				System.out.print(j + " ");
			}
			// 换行
			System.out.println();
		}
	}
}
循环控制语句
/**
 *  循环控制语句:
 *    对整个循环流程进行控制,可以提前终止或者跳出循环
 *  	continue: 跳出当层循环,如果后面还有循环,继续执行
 *  	break: 跳出当前循环,后面如果还有循环,不会执行
 *  	return: 终止当前方法
 */
public class _17_CircleControl2 {

	public static void main(String[] args) {
		//打印1到5之间的数字  除了3以外
		//拿到1到5之间的数字 
		for (int i = 1; i < 6; i++) {
			if (i == 3) {
				continue;
			}
			System.out.println("continue: " + i);// 1 2 4 5
		}

		for (int i = 1; i < 6; i++) {
			if (i == 3) {
				break;
			}
			System.out.println("break: " + i);// 1 2
		}
		System.out.println("会执行到吗1");
		
		for (int i = 1; i < 6; i++) {
			if (i == 3) {
				return;
			}
			System.out.println("return: " + i);// 1 2
		}
		System.out.println("会执行到吗2");
	}
}