1. 选择结构

switch语句

格式:

switch(表达式){
			case 值1:
				语句体1;
				break;
			case 值2:
				语句体2;
				break;
			… …
			default:
				语句体n+1;
				break;
		}

javaswitch中default作用 java switch语句default_switch


格式解释:

  1. 表达式:有限制的
    byte、short、int、char
    JDK5以后可以是枚举
    JDK7以后可以是字符串
  2. case:
    后面跟着的是要和表达式进行比较的值
  3. 语句体:
    要执行的代码
  4. break:
    表示中断结束的意思,可以控制switch语句的结束
  5. default:
    当所有的值都和表达式匹配的时候,就执行default控制的语句,相当于if语句的else

注意事项

  1. case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同
  2. default可以省略,但是不建议。
  3. break可以省略,但结果可能不是我们想要的,会出现case穿透,不建议省略。
  4. default不一定要在最后,但是建议在最后。
  5. switch语句的结束条件,1.遇break结束。2.执行到末尾

if语句和switch的区别:

if语句:

  1. 针对结果是boolean类型的判断
  2. 针对一个范围的判断
  3. 针对几个常量值的判断

switch语句:

  1. 针对几个常量值的判断

2. 循环语句(for循环,while循环,do…while循环)

组成:
初始化语句
判断条件语句
循环体语句
控制条件语句

1. for循环

格式:

for(初始化语句;判断条件语句;控制条件语句){
		循环体语句;
	}

javaswitch中default作用 java switch语句default_条件语句_02


执行流程:

  1. 执行初始化语句
  2. 执行判断条件语句,看返回值是true还是false
  1. 如果为true,继续执行
  2. 如果为false,就结束循环
  1. 执行循环体语句
  2. 执行控制条件语句
  3. 回到第二步

注意事项:

  1. 判断条件语句结果是boolean类型。
  2. 循环体语句如果是一条语句,大括号可以省略,如果是多条语句,大括号不能省略,建议永远不要省略。
  3. 一般来说,有左大括号就没有分号,有分号就没有左大括号。

练习:在控制台输出所有的“水仙花数”

class ForDemo6{
    public static void main(String[] args){
        for (int x = 100; x < 1000; x++)
        {
            int ge = x % 10;
            int shi = x / 10 % 10;
            int bai = x / 10 / 10 % 10;
            
            if (x == (ge * ge * ge + shi * shi * shi + bai * bai * bai)){
                System.out.println(x);
            }
        }
    }
}

2. while循环

格式:

while(判断条件语句){
		循环体语句;
}

扩展格式:

初始化语句;
	while(判断条件语句){
		循环体语句;
		控制条件语句;
	}

javaswitch中default作用 java switch语句default_条件语句_03


for循环与while的区别:

一种理解:
如果想在循环结束后继续使用条件的那个变量,用while循环,否则用for循环。
因为变量提早的从内存中消失,可以提高内存的使用效率。

另一种理解:
如果是一个范围的,用for循环。
如果是不明确要做多少次,用while循环较为合适。

3. do…while循环

格式:

do{
		循环体语句;
	}while(判断条件语句);

扩展格式:

初始化语句;
	do{
		循环体语句;
		控制条件语句;
	}while(判断条件语句);

javaswitch中default作用 java switch语句default_switch_04


区别:

do…while循环至少执行一次循环体。

而for,while循环必须先判断条件是否成立,然后决定是否执行循环体语句。

应优先考虑for,其次考虑while,最后考虑do…while


注意死循环:

一定要注意控制条件语句的变量,不要成了死循环。

另:

输出语句的另一种格式:System.out.print( );此格式不带换行。

可以使用System.out.println(); 的空的输出语句实现换行。

4. 循环嵌套

就是循环语句的循环体本身就是一个循环语句。

外循环控制行数

内循环控制列数

  1. 输出图形:
*
**
***
****
*****
class ForForDemo2{
    public static void main(String[] args){
        for (int x = 0; x < 5; x++){
            for (int y = 0; y <= x; y++){
                System.out.print("*");
            }
            System.out.println();
        }
    }
}
  1. 输出九九乘法表:
class ForForDemo3{
    public static void main(String[] args){
		for (int x = 1; x <= 9; x++){
        	for (int y = 1; y <= x; y++){
                System.out.print(y+"*"+x+"="+y*x+"\t");
            }
            System.out.println();
   		 }
    }
}

注意:

转义字符:

‘\t’:Tab键

‘\r’:回车

‘\n’:换行

2. 控制语句的跳转(break、continue、return)

1. break

场景:

  1. 在选择结构switch语句中
  2. 在循环语句中

使用:

  1. 跳出单层循环
  2. 跳出多层循环
    使用带标签的语句
    格式:
    标签名:语句

例如:

class ForForDemo4 {
    public static void main(String[] args) {
        wc:
        for (int x = 0; x < 10; x++) {
            nc:
            for (int y = 0; y < 4; y++) {
                break wc;	//跳出外层循环
            }
        }
    }
}

2. continue

场景:

在循环语句中

使用:

跳出一次循环,进入下一次的执行

3. return

return关键字不是为了跳转出循环体,更常用的功能是结束一个方法,也就是退出一个方法。跳转到上层调用的方法。

练习:

小芳的妈妈每天给她2.5元钱,她都会存起来,但是,每当这一天是存钱的第5天或者5的倍数的话,她都会花去6元钱,请问,经过多少天,小芳才可以存到100元钱。

代码:

class whileDemo3 {
    public static void main(String[] args) {
      double dayMoney = 2.5;
      double dayCount = 1;
      int result = 100;
      double daySum = 0;
      while (true){
          daySum += dayMoney;

          if (daySum >= result){
              System.out.println("共花了"+dayCount+"天储存了100元");
              break;
          }

          if (dayCount % 5 == 0){
              daySum -= 6;
              System.out.println("第"+dayCount+"天花了6元钱");
          }
          dayCount++;
      }
    }
}