java基础-流程控制

流程控制

java基础-流程控制_第1张图片
一.顺序结构
概念:程序的运行步骤与代码的书写顺序一致;

二.分支结构
if 、else

2.1 单if结构
格式:

if(条件表达式){
	语句a
}
语句b

逻辑:判断条件是否满足,如果满足执行语句a,再执行语句b;反之,直接执行语句b。

2.2 标准的if-else

if(条件){
	语句a
}else{
	语句b
}

语句c
逻辑:条件满足,执行语句a,反之,执行语句b,语句c无论无何都会执行。
注意:if、else的是互斥的;if、else中必须有一个被执行

2.3 多条件的if-else
格式:

if(条件1){
	语句a;
}else if(条件2){
	语句2;
} else if(条件3){
	语句3;
}
…
else{
	语句n;
}
语句m;

java基础-流程控制_第2张图片
java基础-流程控制_第3张图片
逻辑:依次判断每一个条件,当有一个条件满足时,就执行对应代码段中的语句,然后执行语句m;如果没有任何一个语句满足条件,则执行最后一个else,然后再执行语句m。

2.4 if-else的嵌套
格式:在if或者else的代码块中又有if-else继续进行判断
java基础-流程控制_第4张图片

三.选择结构
关键字:switch case break default
格式:
**

switch(表达式){
	case 值1:
		语句a;
		break;
    case 值2:
		语句b;
		break;
    case 值3:
		语句c;
		break;
	…
	default:
		语句d;
		break;
}

**

逻辑:计算表达式的结果,将此结果与case后的值比较,如果相同,则执行该case后的语句;如果没有一个case后的值与表达式的结果相同,则执行default后的语句。

注意
1.case 标签可以是: char、byte、short、int、String、枚举
2.case后的值类型必须与表达式的类型一致
3.defaul不是必须的,只有没有任何一个case满足且需要有默认结果时才使用,且位置时任意的,一般位置放在最后。
4.break的作用是结束整个switch-case结构
5.break的穿透性是指在某一个case值与表达式结果匹配时,不写break,程序会继续向下执行直到遇到下一个break,或者运行到switch的末尾。

四. 循环结构
概念:功能反复执行;
循环的四要素:

  1. 初始化值:循环的起始位置
  2. 循环条件:判断循环该继续还是终止的条件
  3. 循环体:想要反复执行的功能
  4. 步进表达式:控制循环的执行

1.while
格式:

	while(条件){
		循环体;
	}

java基础-流程控制_第5张图片
当条件为 true 时,while 循环执行一条语句(也可以是一个语句块)。
如果开始循环条件的值就为 false, 则 while 循环体一次也不执行。

逻辑:判断条件是否为true,如果为true,则执行循环体,继续判断条件,直到条件为false,循环结束。

	// 从1乘到20
		int i = 1;
		long sum = 1;
		while (i < 21) {
			sum = sum * i;
			i++;
		}
		System.out.println(sum);

	 //1-2+3-4+5-6...100
		int j = 1;
		int sum2 = 0;
		while (j <= 100) {
			if(j % 2 == 0) {
				sum2 -= j;
			}else {
				sum2 += j;
			}
			j++;
		}
		System.out.println(sum2);

2.do-while
格式:

 do{
		循环体; 
}while(条件);

逻辑:先执行一次循环体,判断条件,如果条件为true,则继续执行循环体直到条件为false,结束循环;

注意:do-while循环的循环体至少会执行一次

3. for
格式:

 for(初始值;条件(是否满足);步进表达式){
    		循环体;
    }

逻辑:先初始值,然后判断条件是否满足,如果满足则执行循环体,然后再执行步进表达式,判断条件是否满足,然后再执行循环体,再执行步进表达式…当条件不满足时则跳出。

    for (int i = 1; i <= 10; i++) {
			System.out.println("*");
	}//打出十个*

		 // 求1~100内包含7的数
		for (int i = 0; i <= 100; i++) {
			if( i / 10 == 7 || i % 10 == 7) {
				System.out.println(i);
			}
		}
		
		// 求水仙花数,他是一个三位数的数,他的个、十、百位上的数的立方和等于他自己本身
	int result = 0;
	for (int i = 100; i < 999; i++) {
		int a = i % 10;
		int c = (i / 10) % 10;
		int b = i / 100;
		if (Math.pow(a, 3) + Math.pow(b, 3) + Math.pow(c, 3) == i) {
			System.out.println(i);
		}
	}
	
// 将0.0001米的纸对折多少次,他的厚度会超过8848
		double a = 0.0001;
		int count = 0;
		while (a < 8848) {
			a=a*2;
			count++;
		}
		System.out.println(count);

4.死循环
概念:无限循环,循环条件永远为true;
格式:

while(true){

}


do{

}while(true)

for( ; ; ){

}

5.循环嵌套
概念:一个循环作为另一个循环的循环体,作为循环体的循环结构称为内存循环,另一个称为外层循环。

// 乘法口诀表
	public static void multiplication() {
		for (int i = 1; i <= 9; i++) {
			for (int j = 1; j <= i; j++) {
				System.out.print(j +"*"+i+"="+i*j+"  ");
			}
			System.out.println();
		}
	}

java基础-流程控制_第6张图片

你可能感兴趣的:(java基础-流程控制)