顺序、分支、循环

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/z_5201314/article/details/89695100

任何复杂的业务逻辑都可以由顺序结构、分支结构、循环结构来实现,其中分支结构用于
实现根据条件来选择性地执行某段代码,循环结构则用于实现根据循环条件重复执行某一段代码,JAVA提供了if 和 switch两种分支语句,并提供了while 、do while和for三种循环结构,并在JAVA5之后提供了一种新的循环结构:foreach增强for循环,能以更简单的方式
来遍历集合、数组的元素,JAVA还提供了break 和continue来控制程序的循环结构。

1.顺序结构

  • 顺序结构就是程序从上到下逐行执行,中间没有任何判断和跳转。

2.分支结构

  • JAVA提供了两种常见的分支结构:if语句和switch语句,其中if语句使用布尔表达式或布尔值作为分支条件来进行分支控制;而switch语句则用于对多个整型值进行匹配,从而实现分支来控制流程。

public class IfTest {

	public static void main(String[] args) {
		//声明一个int 类型的变量 score,并为其赋值为61
		int score =61;
		//当score大于60时,大括号里面的内容才会执行,会输出及格
		if(score>60){
			System.out.println("score及格");
		}
		
		//声明一个Int 类型的变量score1,并为其赋值为59
		int score1 =59;
		if (score1>60) {
			//当score1大于60时,执行下面这行语句
			System.out.println("score1及格");
		} else {
			//否则执行这一行语句
			System.out.println("score1不及格");
		}
		
		//声明一个Int 类型的变量score2,并为其赋值为71
		int score2 = 71;
		if (score2>=90) {
			//当score2大于90时为优秀
			System.out.println("score2优秀");
		}else if (score2>=80){
			//当score2大于80时为良好
			System.out.println("score2良好");
		}else if (score2>=70) {
			//当score2大于70时为中等
			System.out.println("score2中等");
		}else if (score2>60) {
			//当score2大于60时为及格
			System.out.println("score2及格");
		}else {
			//否则为不及格
			System.out.println("score2不及格");
		}
		
		/**
		 * switch 语句由一个控制表达式和多个case标签组成,和if语句不同的是,switch语句
		 * 后面的控制表达式的数据类型只能是整数类型、枚举和java.lang.String类型
		 */
		//定义一个int类型的变量score3
		char score3 ='B';
		switch(score3){
		case 'A':
			System.out.println("score3优秀");
			break;
		case 'B':
			System.out.println("score3良好");
			break;
		case 'C':
			System.out.println("score3中等");
			break;
		case 'D':
			System.out.println("score3及格");
			break;
		case 'F':
			System.out.println("score3不及格");
			break;
		default:
			System.out.println("score3输入错误!");
		}
		
	}

	
	
}

3.循环结构

  • 循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体。当反复执行循环体时,需要在合适的时候把循环条件改为假,从而结束循环,否则循环将一直循环下去,形成一个死循环。循环语句可能包含4个部分。
    1.初始化语句(init_statement):一条或多条语句,这些语句用于完成一些初始化工作,初始化语句在循环开始之前执行
    2.循环条件(test_expression):这是一个boolean表达式,这个表达式决定是否执行循环体
    3.循环体(body_statement):这个部分是循环的主体,如果循环条件允许,这个代码将被重复执行,如果这个代码块只有一行语句,则这个代码块的花括号是可以省略的
    4.迭代语句(iteration_statement):这个部分在一次循环体执行结束后,对循环条件求值之前执行,通常用于控制循环条件中的变量,使得循环在合适的时候结束。

  • 3.1whlie循环

public class WhileTest {

	public static void main(String[] args) {
		/*
		 * while循环语句
		 *[init_statement]
		 *while(test_expression){
		 *	statement;
		 *	[iteration_statement]
		 *}
		 *while循环每次执行循环体之前,先对test_expression循环条件求值,如果循环条件为true
		 *则运行循环体部分。从上面的语法格式来看,迭代语句iteration_statement总是位于循环体
		 *的最后,因此只有当循环体能成功执行完成时,while循环才会执行iteration_statement迭
		 *代语句
		 *从这个意义上来看,while循环条件也可被当成条件语句,如果test_expression条件一开始就
		 *为false,则循环体不执行。
		 */
		//初始化循环条件并赋值为0
		int a=0;
		while (a<10) {
//			System.out.println(a++);
//			当a=10时,循环结束
			a++;
		}
		System.out.println("while循环结束");
//		下面是一个死循环
//		while (a<10) {
//			System.out.println("死循环"+a--);
//			a--;
//		}
		
	}

}

  • 3.2 do while 循环
public class DoWhile {

	public static void main(String[] args) {
		/*
		 * do while 循环与 while循环的区别在于:while循环是先判断循环条件,如果循环条件为真则执行
		 * 循环体,否则不行;而do while 循环条件则先执行循环体,然后才判断循环条件,如果循环条件
		 * 为真,则执行下一次循环,否则终止循环,也就是do while无论是否满足条件都至少会执行一次循环。
		 * [init_statement]
		 * do{
		 * 		statement;
		 * 		[iteration_statement]
		 * }while(test_expression);
		 */
		//定义变量a
		int a =1;
		//执行 do while 循环
		do {
			System.out.println(a++);
			//循环迭代语句
			a++;
			//循环条件紧跟while关键字后面
		} while (a<10);
		System.out.println("循环体结束!");
	}

}
  • 3.3 for循环
public class ForTest {

	public static void main(String[] args) {
		/*
		 * for循环是更加简洁的循环语句,大部分情况下,for循环语句可以代替while循环、do while循环。
		 * for循环的基本格式如下:
		 * for([init_statement];[test_expression];[iteration_statement]){
		 * 		statement
		 * }
		 * 程序执行for循环时,先执行循环的初始化语句init_statement,初始化语句只在循环开始前执行一
		 * 次,每次执行循环体之前,先计算test_expression循环条件的值,如果循环条件返回true,则执行
		 * 循环体,循环体执行结束后执行循环迭代语句。因此,对于for循环而言,循环条件总比循环体要多执
		 * 行一次,因为最后一次执行循环条件返回flase,将不再执行循环体。因为for循环的循环迭代语句没
		 * 有与循环体放在一起,因此即使在执行循环体时遇到continue语句结束本次循环,迭代语句也一样会
		 * 执行。
		 */
		//初始化循环条件、循环条件、循环迭代语句
		for(int i =0;i<10;i++){
			System.out.println(i);
		}
		System.out.println("循环结束");
		//for循环允许同时制定多个初始化语句,循环条件也可以是包含逻辑运算符的表达式
		for(int a=0,b=0,c=0;a<10&&b<10&&c<4;c++){
			System.out.println(c++);
		}
		
		//for循环括号中只有2个分号是必需的,初始化语句、循环条件、迭代语句部分都是可以省略的,如果省略
		//循环条件,则这个循环条件默认为true,将会产生一个死循环
//		for(;;){
//			System.out.println("死循环!");
//		}
		
		//嵌套循环 99乘法表
		//假设外层循环次数为N,内层循环次数为M,那么内层循环的循环体实际上需要执行N*M次
		for(int j=1;j<10;j++){
			for(int k=1;k<=j;k++){
				System.out.print(j+"x"+k+"="+j*k+" ");
			}
			//换行
			System.out.println();
		}
		
		
		/*
		 * 使用break结束循环
		 * 某些时候需要在某种条件出现时强行终止循环,而不是等到循环条件为false时才退出循环,此时
		 * 可以用break来完成这个功能.break用于完全结束一个循环,跳出循环体。不管是哪种循环,一旦
		 * 执行了break,系统将完全结束该循环,开始执行循环之外的代码
		 */
		for(int s=0;s<10;s++){
			System.out.println(s);
			if(s==5){
				//执行break时结束循环
				break;//如果使用的是return则结束的是整个方法
			}
		}
		
		/*
		 * foreach循环
		 * JAVA5以后,JAVA提供了一种更简单的循环:foreach循环,这种循环遍历数组和集合更加简洁
		 * 使用foreach循环遍历数组和集合元素时,无须获得数组和集合的长度,无须根据索引访问数组
		 * 元素和集合元素,foreach循环会自动遍历数组和集合的每个元素。
		 * 在下面语法格式中,type是元素类型,variableName是一个形参名,foreach循环将自动将数组
		 * 元素、集合元素依次赋给该变量
		 * for(type variableName : array | collection){
		 * 		//variableName 自动迭代访问每个元素
		 * }
		 */
		//定义一个String 类型的数组,初始化 并赋值
		String [] s={"v","g","h","l"};
		//使用foreach循环来遍历数组元素
		//其中ss将会自动迭代每一个数组元素
		for(String ss:s){
			System.out.println(ss);
		}
	}
	
	

}

猜你喜欢

转载自blog.csdn.net/z_5201314/article/details/89695100