java的基础语法(2)

程序的三种执行顺序

  1. 顺序结构:自上而下的执行程序 System.out.println("A");System.out.println("A");
  2. 分支结构:根据条件,选择对应的代码执行 if、switch
  3. 循环结构:控制某段代码重复的执行 for、while、do-while

分支结构

if

根据条件的真或假,来决定执行某段代码。
if分支有三种形式

  1. if
    if (条件表达式) {
          
          
    	代码;	
    }
    
  2. if … else
    if (条件表达式) {
          
          
       代码1;	
    } else {
          
          
       代码2;	
    }
    
  3. if … else if … else
    if (条件表达式1) {
          
          
        代码1;	
    } else if (条件表达式2) {
          
          
        代码2;	
    } else if (条件表达式3) {
          
          
        代码3;	
    } 
    . . .
    else {
          
          
        代码n;
    }
    

switch

是通过比较值是否相等,来决定执行哪条分支。

switch(表达式){
    
    
	case1:      
		执行代码...;      
		break;
	case2:   
		执行代码...;      
		break;default:       
		执行代码n;
}

switch分支的执行流程

  1. 先执行表达式的值,再拿着这个值去与case后的值进行匹配。
  2. 与哪个case后的值匹配为true就执行哪个case块的代码,遇到break就跳出switch分支。
  3. 如果全部case后的值与之匹配都是false,则执行default块的代码。

switch的几点注意事项

  1. 表达式类型只能是byte、short、int、char,JDK5开始支持枚举,JDK7开始支持String、不支持double、float、long。
  2. case给出的值不允许重复,且只能是字面量,不能是变量。
  3. 正常使用switch的时候,不要忘记写break,否则会出现穿透现象。

switch穿透性在些情况下可以简化代码
当存在多个case分支的代码相同时,可以把相同的代码放到一个case块中,其他的case块都通过穿透性穿透到该case块执行代码即可,这样可以简化代码。

public static void main(String[] args) {
    
    
    test3();// 打游戏
}
public static void test3() {
    
    
    String week = "周六";
    switch (week) {
    
    
        case "周一":
            System.out.println("埋头苦干,解决bug");
            break;
        case "周二":
        case "周三":
        case "周四":
            System.out.println("请求大牛程序员帮忙");
            break;
        case "周五":
            System.out.println("自己整理代码");
            break;
        case "周六":
        case "周日":
            System.out.println("打游戏");
            break;
        default:
                System.out.println("星期信息有误!");
    }
}

if、switch的比较:各自适合什么业务场景?

  • if在功能上远远强大于switch。
  • 当前条件是区间的时候,建议使用if分支结构来实现
  • 当条件是与一个一个的值比较的时候,建议用switch更合适(格式良好,性能较好,代码优雅)。

循环结构

for循环

控制一段代码反复执行很多次。

for (初始化语句; 循环条件; 迭代语句) {
    
    
	循环体语句(重复执行的代码);
}
for (int i = 0; i < 3; i++) {
    
    
    System.out.println("Hello World");
}
  1. 循环一开始,执行int i = 0 一次。
  2. 此时 i=0 ,接着计算机执行循环条件语句:0 < 3 返回true , 计算机就进到循环体中执行,输出 :helloWorld ,然后执行迭代语句i++。
  3. 此时 i=1 ,接着计算机执行循环条件语句:1 < 3 返回true , 计算机就进到循环体中执行,输出 :helloWorld ,然后执行迭代语句i++。
  4. 此时 i=2 ,接着计算机执行循环条件语句:2 < 3 返回true , 计算机就进到循环体中执行,输出 :helloWorld ,然后执行迭代语句i++。
  5. 此时 i=3 ,然后判断循环条件:3 < 3 返回false, 循环立即结束!!

while循环

初始化语句;
while (循环条件) {
    
    
	循环体语句(被重复执行的代码);
    迭代语句;
}

int i = 0;
while (i < 3) {
    
    
   System.out.println("Hello World");
    i++;
}

do-while

初始化语句;
do {
    
    
    循环体语句;
    迭代语句;
} while (循环条件);

int i = 0;
do {
    
    
	System.out.println(Hello World!");
	i++;
} while( i < 3);

do-while循环的特点:先执行后判断。

  • for循环 和 while循环(先判断后执行); do…while (先执行后判断)
  • for循环和while循环的执行流程是一模一样的,功能上无区别,for能做的while也能做,反之亦然。
  • 使用规范:如果已知循环次数建议使用for循环,如果不清楚要循环多少次建议使用while循环。
  • 其他区别:for循环中,控制循环的变量只在循环中使用。while循环中,控制循环的变量在循环后还可以继续使用。

死循环

可以一直执行下去的一种循环,如果没有干预不会停下来。
死循环的写法

for ( ; ; ) {
    
    
	System.out.println("Hello World1");
}
// 经典写法
while (true) {
    
    
	System.out.println("Hello World2");
}
do {
    
    
	System.out.println("Hello World3");
} while (true);

循环嵌套

循环中又包含循环。

for(int i = 0; i < 3; i++) {
    
    
 	for(int j = 0; j < 5; j++) {
    
    
 		System.out.println("我爱你");
 	}
}

外部循环每循环一次,内部循环会全部执行完一轮。

break、continue

break : 跳出并结束当前所在循环的执行。
continue: 用于跳出当前循环的当次执行,直接进入循环的下一次执行。

注意事项
break : 只能用于结束所在循环, 或者结束所在switch分支的执行。
continue : 只能在循环中进行使用。

猜你喜欢

转载自blog.csdn.net/h3169929477/article/details/147090631