Java学习笔记——流程控制语句(if/else、switch case、while、do while、for)

程序三种结构

  1. 顺序结构(从上至下逐行依次执行)
  2. 选择结构(if/else、switch case)
  3. 循环结构(while、do while、for)

关键字(break、continue、return)

选择结构

if语句

语法:

if (布尔表达式) {

语句1;

语句2;

...

}

执行流程:

  1. 先判断布尔表达式
  2. 如果结果是true,就执行if后的{} 内的语句,然后继续执行后续的
  3. 如果结果是false,就跳过if后的{} 而是执行后续的代码

if..else..

 if (布尔表达式) {

  当布尔表达式值是true时,执行if后的语句,

   且不执行else中的语句

 } else {

   当布尔表达式值是false时,不执行if后的

   而是执行else后的语句,

 }

if..else if..else if..else if..else

 if(布尔表达式1) {

  语句1;

 } else if (布尔表达式2) {

  语句2;

 } else if (布尔表达式3) {

  语句3;

 } ...{

  语句n;

 } else {

  语句n+1;

 }

 一旦有某个语句执行了,后续的if else if等不再执行.

switch case语句

语法 :

switch (值) {

case 值1:

语句1;

break;

case 值2:

语句2;

break;

  ... 

case 值n:

语句n;

break;

default :

语句n+1;

}

执行流程:

  1. switch后的值,与case后的值比较
  2. 如果相等,就执行该case下的语句
  3. 如果遇到break,跳出switch结构,执行后续
  4.  如果没有break,会造成case击穿
  5.  如果不相等,比对下一个case
  6.  ...
  7.  如果没有一个case比对成,那么会执行default中的语句

三目/三元运算:

  1. 数据类型 变量 = 布尔表达式 ?当前面结果是true时执行此处:当前面结果是false时执行此处;
  2. 数据类型 变量 = A ? B : C;
  3.  先执行A处的布尔运算,得到一个布尔值
  4. 当布尔值是true时,执行B处的代码
  5. 当布尔值是false时,执行C处的代码
  6. 整体结果的数据类型根据 执行B处或者C处的代码的结果而定
  7. B处和C处的结果数据类型一致
public void test(){
		int a = 1;
		int b = 2;
		int s = a < b ? 1 : 0; 
		System.out.println(s);
		
		int r1 = a < b ?(a > b ? a:b) : (a < b ? a : b);
		int r2 = a < b ? (a+b*4): (a < b ? a : b);
		System.out.println(r1);
		System.out.println(r2);
}

 

循环结构

while循环 》》》 当型:先判断,后执行

 语法:

 while (布尔表达式) {

  循环体;

      循环迭代;(++ / --)-->控制循环次数

 }

 执行流程:

  1.  先判断while后的表达式
  2.  如果是true,就行{}内的语句
  3.  执行完{}内语句,再次判断while后的表达式
  4. 当while后的结果是false就不再执行{}内的内容,
  5. 继续执行后续

do while循环 》》》 直到型

 语法:

先执行后判断

 do{

  循环体;

  迭代

 }while(布尔表达式);

执行流程

  1. 先执行do中的循环内容
  2. 判断while后的表达式
  3. 表达式为true,再执行do中内容
  4. 在判断..
  5. 直到判断为false时,跳过循环,执行后续

 do while 至少会执行一次

for循环

 for(初始值;控制条件;迭代) {

  循环体;

 }


  1.  变量名:在同一作用域内不能重复 》》》 变量在同一作用域内有效.
  2.  同一作用域: 在同一个最近的{}内

 

关键字

break :

  1. 只能在switch, 循环中使用,不能单独在if中使用
  2. 能跳出当前switch/循环的执行,继续执行后续
  3. 在循环中默认跳出当前一层循环
  4. break 后指定锚点,可以调到任意层循环外
  5. 锚点: 写在for/while/do字的前面或者上面,锚点名字任意

例如:

a:

for()...

b:

for()....

point:
for(int k = 1;k < 10;k++) {
	System.out.println("K = "+k);
	for(int j = 1;j < 10;j++) {
		System.out.println("J = "+j);
		for(int i = 1;i < 10 ;i++) {
			System.out.println("I = "+i);
			// break后指定锚点名
			break point;
		}
	}
}

 

continue :

  1. 只能在循环中使用
  2. 结束当前层循环的这一次循环,继续下次循环
		for(int j = 1;j < 10;j++) {
			System.out.println("J = "+j);
			for(int i = 1;i < 10 ;i++) {
				if(i == 5) {
					continue;
				}
				System.out.println("I = "+i);
			}
		}

 

return

  1. 不算流程控制语句中的关键字.但是它也能控制语句执行的顺序.
  2. 不管在任意地方,遇到return,当前方法结束执行.
public void test(){
   for(int j = 1;j < 10;j++) {
       System.out.println("J = "+j);
	   for(int i = 1;i < 10 ;i++) {
		   if(i == 5) {
			  // 结束当前方法的执行
			  return;
		    }
		System.out.println("I = "+i);
	 }
    }
}

 

你可能感兴趣的:(Java学习笔记,java)