JavaSe总结-04--Java基础语法(3)

04.01 选择结构switch语句的格式及其解释
04.02 选择结构switch语句的基本使用
04.03 选择结构switch语句的注意事项
04.04 选择结构switch语句练习1看程序写结果
04.05 选择结构switch语句练习2单项选择题
04.06 选择结构switch语句练习3表达式是字符串
04.07 选择结构switch和if语句的各自使用场景
04.08 循环结构循环语句概述
04.09 循环结构for语句的格式和基本使用
04.10 循环结构for语句的注意事项
04.11 循环结构for语句的练习1获取数据
04.12 循环结构for语句的练习2求和思想
04.13 循环结构for语句的练习3偶数和
04.14 循环结构for语句的练习4阶乘
04.15 循环结构for语句的练习5水仙花
04.16 循环结构for语句的练习6改进版的回文数
04.17 循环结构for语句的练习7统计思想
04.18 循环结构for语句的练习8同时取余问题
04.19 循环结构while语句的格式和基本使用
04.20 循环结构while语句的练习1求和思想
04.21 循环结构while语句的练习2统计思想
04.22 循环结构while语句和for语句的区别
04.23 循环结构while语句的练习珠穆朗玛峰
04.24 循环结构do...while语句的格式和基本使用
04.25 循环结构三种循环语句的区别
04.26 循环结构循环注意事项之死循环
04.27 循环结构循环嵌套输出4行5列的星星
04.28 循环结构循环嵌套输出正三角形
04.29 循环结构九九乘法表
04.30 控制跳转语句break语句
04.31 控制跳转语句continue语句
04.32 控制跳转语句return语句
04.33 while语句和break的结合使用小芳存钱

04.01 选择结构switch语句的格式及其解释

    switch语句的格式:

       switch(表达式){

           case 值1:语句体1;break;

           case 值2:语句体2;break;

           ......

           default:语句体n+1;break;

        }

    格式解释:

    switch表示这是switch语句,表达式的取值:byte,short,int,char,JDK5以后可以是枚举类型,JDK7以后可以是String类型

    case后面跟的是要和表达式进行比较的值

    语句体部分可以是一条或多条语句

    break表示中断,结束的意思,可以结束switch语句

    default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。

04.02 选择结构switch语句的基本使用

    switch语句执行流程:

        首先计算出表达式的值

        其次,和case后的值依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。

        最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束。

    流程图:

JavaSe总结-04--Java基础语法(3)_第1张图片

 例:键盘录入1~7,对应输出星期一到星期日

 1 import java.util.Scanner;
 2 class Demo
 3 {
 4    public static void main(String[] args)
 5    {
 6       Scanner sc = new Scanner(System.in);
 7       System.out.println("请输入一个数:");
 8       int num = sc.nextInt();
 9       switch(num)
10       {
11          case 1:
12             System.out.println("星期一");break;
13          case 2:
14             System.out.println("星期二");break;
15          case 3:
16             System.out.println("星期三");break;
17          case 4:
18             System.out.println("星期四");break;
19          case 5:
20             System.out.println("星期五");break;
21          case 6:
22             System.out.println("星期六");break;
23          case 7:
24             System.out.println("星期日");break;
25          default:
26             System.out.println("数据输入错误");
27       }
28    }
29 }

04.03 选择结构switch语句的注意事项

    1.case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的。

    2.default语句可以省略,一般不建议。除非判断的值是固定的。

    3.break语句可以省略,一般不建议。因为得到的结果可能不是你想要的。

    4.default语句可以出现在switch语句任意位置。

    5.switch语句的结束条件遇到break或者执行到程序的末尾。

04.04 选择结构switch语句练习1看程序写结果

 1 class Demo
 2 {
 3    public static void main(String[] args)
 4    {
 5       int x = 2;
 6       int y = 3;
 7       switch(x)
 8       {
 9          default:
10             y++;break;
11          case 3:
12             y++;
13          case 4:
14             y++;
15       }
16       System.out.println("y="+y); //y=4
17       
18       int a = 2;
19       int b = 3;
20       switch(a)
21       {
22          default:
23             b++;
24          case 3:
25             b++;
26          case 4:
27             b++;
28       }
29       System.out.println("b="+b); //b=6
30    }
31 }

04.05 选择结构switch语句练习2单项选择题

 1 import java.util.Scanner;
 2 class Demo
 3 {
 4    public static void main(String[] args)
 5    {
 6       Scanner sc = new Scanner(System.in);
 7       System.out.println("int类型占几个字节?");
 8       System.out.println("A.2个\r\nB.4个\r\nC.6个\r\nD.8个");
 9       System.out.println("请输入答案:");
10     //获取字符串的第一个字符
11       char ch = sc.nextLine().charAt(0);
12       switch(ch)
13       {
14          case 'A':
15             System.out.println("选择错误!");break;
16          case 'B':
17             System.out.println("选择正确!");break;
18          case 'C':
19             System.out.println("选择错误!");break;
20          case 'D':
21             System.out.println("选择错误!");break;
22          default:
23             System.out.println("没有该选项");
24       }
25    }
26 }

运行结果:

int类型占几个字节?
A.2个
B.4个
C.6个
D.8个
请输入答案:
B
选择正确

04.06 选择结构switch语句练习3表达式是字符串

 1 import java.util.Scanner;
 2 class Demo
 3 {
 4    public static void main(String[] args)
 5    {
 6       Scanner sc = new Scanner(System.in);
 7       System.out.println("请输入要翻译的单词");
 8       System.out.println("hello\r\nworld\r\nchina\r\ndevelop");
 9       String str = sc.nextLine();
10       switch(str)
11       {
12          case "hello":
13             System.out.println("你好");break;
14          case "world":
15             System.out.println("世界");break;
16          case "china":
17             System.out.println("中国");break;
18          case "develop":
19             System.out.println("开发");break;
20          default:
21             System.out.println("该单词暂时无法翻译");
22       }
23    }
24 }

04.07 选择结构switch和if语句的各自使用场景

    if语句使用场景:

        针对结果是boolean类型的判断

        针对一个范围的判断

        针对几个常量值的判断

    switch语句使用场景:

        针对几个常量值的判断

04.08 循环结构循环语句概述

    循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。

    循环语句的组成:

        初始化语句:一条或者多条语句,这些语句完成一些初始化操作。

        判断条件语句:这是一个boolean 表达式,这个表达式能决定是否执行循环体。

        循环体语句:这个部分是循环体语句,也就是我们要多次做的事情。

        控制条件语句:这个部分在一次循环体结束后,下一次循环判断条件执行前执行。通过用于控制循环条件中的变量,使得循环在合适的时候结束。

04.09 循环结构for语句的格式和基本使用

    for循环语句格式:

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

           循环体语句;

        }

    执行流程:

        A:执行初始化语句

        B:执行判断条件语句,看其结果是true还是false。如果是false,循环结束。如果是true,继续执行。

        C:执行循环体语句

        D:执行控制条件语句

        E:回到B继续

     流程图:

JavaSe总结-04--Java基础语法(3)_第2张图片

 

    例:在控制台输出10次helloworld

1 for(int i = 0;i < 10; i++)
2 {
3     System.out.println("helloworld");
4 }

04.10 循环结构for语句的注意事项

    注意事项

        1.判断条件语句的结果是一个boolean类型

        2.循环体语句如果是一条语句,大括号可以省略;如果是多条语句,大括号不能省略。建议永远不要省略。

        3.一般来说:有左大括号就没有分号,有分号就没有左大括号

04.11 循环结构for语句的练习1获取数据

    在控制台输出数据1-10

 1 class Demo
 2 {
 3    public static void main(String[] args)
 4    {
 5       for(int i = 1;i <= 10; i++)
 6       {
 7          System.out.println(i);
 8       }
 9    }
10 }

04.12 循环结构for语句的练习2求和思想

    求出1-10之间数据之和

 1 class Demo
 2 {
 3    public static void main(String[] args)
 4    {
 5       //定义第一个加数
 6       int sum = 0;
 7       for(int i = 1;i <= 10; i++)
 8       {
 9          //sum = sum + i;
10          sum += i;
11       }
12       System.out.println("sum="+sum);
13    }
14 }

04.13 循环结构for语句的练习3偶数和

    求出1-100之间偶数和

 1 class Demo
 2 {
 3    public static void main(String[] args)
 4    {
 5       //定义第一个加数
 6       int sum = 0;
 7       for(int i = 1;i <= 100; i++)
 8       {
 9          //判断该数是否为偶数
10          if(i % 2 == 0)
11          {
12             sum += i;
13          }
14       }
15       System.out.println("sum="+sum);
16    }
17 }

04.14 循环结构for语句的练习4阶乘

    求5的阶乘,即计算1*2*3*4*5的积

 1 class Demo
 2 {
 3    public static void main(String[] args)
 4    {
 5       int result = 1;
 6       for(int i = 1;i <= 5; i++)
 7       {
 8          result *= i;
 9       }
10       System.out.println("result="+result);
11    }
12 }

04.15 循环结构for语句的练习5水仙花

    在控制台输出所有的水仙花数,水仙花数是一个三位数,各位数字的立方之和等于该数本身

 1 class Demo
 2 {
 3    public static void main(String[] args)
 4    {
 5       int count = 0;
 6       for(int i = 100;i < 1000; i++)
 7       {
 8          //获取个位数
 9          int ge = i % 10;
10          //获取十位数
11          int shi = i / 10 % 10;
12          //获取百位数
13          int bai = i / 100 % 10;
14          if(ge*ge*ge + shi*shi*shi + bai*bai*bai == i)
15          {
16             System.out.println(i+"满足条件");
17             count++;
18          }
19       }
20       System.out.println("共找到"+count+"个数");
21    }
22 }

运行结果:

153满足条件
370满足条件
371满足条件
407满足条件
共找到4个数

04.16 循环结构for语句的练习6回文数

    在控制台输出所有的回文数并统计个数,回文数就是个位等于万位,十位等于千位,个位+十位+千位+万位=百位,一共5位数

 1 class Demo
 2 {
 3    public static void main(String[] args)
 4    {
 5       int count = 0;
 6       for(int i = 10000;i < 100000; i++)
 7       {
 8          int ge = i % 10;
 9          int shi = i / 10 % 10;
10          int bai = i / 100 % 10;
11          int qian = i / 1000 % 10;
12          int wan = i / 10000 % 10;
13          if(ge == wan && shi == qian && ge+shi+qian+wan == bai)
14          {
15             System.out.println(i+"满足条件");
16             count++;
17          }
18       }
19       System.out.println("共找到"+count+"个数");
20    }
21 }

04.17 循环结构for语句的练习7统计思想

 1 class Demo
 2 {
 3    public static void main(String[] args)
 4    {
 5       int count = 0;
 6       for(int i = 100;i < 1000; i++)
 7       {
 8          int ge = i % 10;  
 9          int shi = i / 10 % 10;
10          int bai = i / 100 % 10;
11          if(ge*ge*ge + shi*shi*shi + bai*bai*bai == i)
12          {
13             count++;
14          }
15       }
16       System.out.println("共找到"+count+"个数");
17    }
18 }

04.18 循环结构for语句的练习8同时取余问题

    统计1~1000之间同时满足  对3整除余2   对5整除余3   对7整除余2  的所有数据并输出至控制台

 1 class Demo
 2 {
 3    public static void main(String[] args)
 4    {
 5       int count = 0;
 6       for(int i = 1;i <= 1000; i++)
 7       {
 8          if(i % 3 == 2 && i % 5 == 3 && i % 7 == 2)
 9          {
10             System.out.println(i+"满足条件");
11             count++;
12          }
13       }
14       System.out.println("共找到"+count+"个数");
15    }
16 }

04.19 循环结构while语句的格式和基本使用

    while循环语句格式:

        while(判断条件语句){

            循环体语句;

        }

    扩展格式:

        初始化语句;

        while(判断条件语句){

           循环体语句;

           控制条件语句;

        }

    执行流程:先执行判断条件语句,如果是false,循环结束。如果是true,继续执行循环体语句。直到判断条件语句是false。

    流程图:

JavaSe总结-04--Java基础语法(3)_第3张图片

1 int i = 0;
2 while(i < 10)
3 {
4    System.out.println("hello");
5    i++;
6 }

04.20 循环结构while语句的练习1求和思想

    求1~100之和

1 class Demo
 2 {
 3    public static void main(String[] args)
 4    {
 5       int sum = 0;
 6       int i = 1;
 7       while(i <= 100)
 8       {
 9          sum += i;
10          i++;
11       }
12       System.out.println("sum = "+sum);
13    }
14 }

04.21 循环结构while语句的练习2统计思想

    统计水仙花数

 1 class Demo
 2 {
 3    public static void main(String[] args)
 4    {
 5       int count = 0;
 6       int i = 100;
 7       while(i <= 1000)
 8       {
 9          int ge = i % 10;
10          int shi = i / 10 % 10;
11          int bai = i / 100 % 10;
12          if(ge*ge*ge + shi*shi*shi + bai*bai*bai == i)
13          {
14             System.out.println(i);
15             count++;
16          }
17          i++;
18       }
19       System.out.println("count = "+count);
20    }
21 }

04.22 循环结构while语句和for语句的区别

    使用区别:

    控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继续使用,如果想继续使用,就用while,否则推荐使用for。原因是for循环结束,该变量就从内存中消失,能够提高内存的使用效率。

    场景区别:

    for循环适合针对一个范围判断进行操作

    while循环适合判断次数不明确操作

JavaSe总结-04--Java基础语法(3)_第4张图片 

04.23 循环结构while语句的练习珠穆朗玛峰

    现在有一张足够大的纸张,厚度为:0.01m。请问,折叠多少次,就可以保证厚度不低于8848m?

    由于次数不确定,使用while循环

1 class Demo
 2 {
 3    public static void main(String[] args)
 4    {
 5       int count = 0;
 6       float num = 0.01f;
 7       while(num < 8848)
 8       {
 9          count++;
10          num *= 2;
11          System.out.println("第"+count+"次"+num+"m");
12       }
13       System.out.println("共计"+count+"次");
14    }
15 }

04.24 循环结构do...while语句的格式和基本使用

    do...while循环语句格式:

    基本格式:

        do{

          循环体语句;

        }while(判断条件语句);

    扩展格式:

    初始化语句;

        do{

          循环体语句;

          控制条件语句;

        }while(判断条件语句);

     流程图:

JavaSe总结-04--Java基础语法(3)_第5张图片

 

1 int i = 0;
2 do
3 {
4    System.out.println("hello");
5    i++;
6 }
7 while (i < 5);

04.25 循环结构三种循环语句的区别

    三种循环语句的区别:

    1.do...while循环至少会执行一次循环体

    2.for循环和while循环必须先判断条件是否成立,只有在条件成立的时候才会去执行循环体

     注意事项:写程序优先考虑for循环,再考虑while循环,最后考虑do...while循环。

04.26 循环结构循环注意事项之死循环

    两种简单的死循环

    1.while(true){}

    2.for(;;){}

04.27 循环结构循环嵌套输出4行5列的星星

输出一个4行5列的星星(*)图案,如下所示:

* * * * *

* * * * *

* * * * *

* * * * *

 1 class Demo
 2 {
 3    public static void main(String[] args)
 4    {
 5       //外循环控制行数
 6       for(int i = 0;i < 4;i++)
 7       {
 8          //内循环控制列数
 9          for(int j = 0;j < 5;j++)
10          {
11             //打印一颗*,不带换行
12             System.out.print("* ");
13          }
14          //换行
15          System.out.println();
16       }
17    }
18 }

04.28 循环结构循环嵌套输出正三角形

输出以下图形

*

* *

* * *

* * * *

* * * * *

 1 class Demo
 2 {
 3    public static void main(String[] args)
 4    {
 5       for(int i = 0;i < 5;i++)
 6       {
 7          for(int j = 0;j <= i;j++)
 8          {
 9             System.out.print("* ");
10          }
11          System.out.println();
12       }
13    }
14 }

04.29 循环结构九九乘法表

输出九九乘法表

 1 class Demo
 2 {
 3    public static void main(String[] args)
 4    {
 5       for(int i = 1;i <= 9;i++)
 6       {
 7          for(int j = 1;j <= i;j++)
 8          {
 9             System.out.print(j+"*"+i+"="+(i*j)+"\t");
10          }
11          System.out.println();
12       }
13    }
14 }

    '\x' : x表示任意,转义字符

    '\t' : TAB键,制表符

    '\r' : 回车

    '\n' : 换行

04.30 控制跳转语句break语句

    Java就提供了break,continue和return来实现控制语句的跳转和中断

        break:中断

        continue:继续

        return:返回

    break的使用场景: 1.在选择结构switch语句中 2.在循环语句中

                   离开使用场景的存在是没有意义的

    break的作用:

        1.跳出单层循环

        2.跳出多层循环(带标签的跳出,格式: 标签名:循环语句,标签名要符合Java的命名规则)

 例1:跳出单层循环

 1 class Demo
 2 {
 3    public static void main(String[] args)
 4    {
 5       for(int i = 1;i <= 10;i++)
 6       {
 7          if(i == 3)
 8          {
 9             break;
10          }
11          System.out.println("hello");
12       }
13    }
14 }

运行结果:

hello
hello

例2:跳出多层循环

 1 class Demo
 2 {
 3    public static void main(String[] args)
 4    {
 5       AA:for(int i = 0;i < 3;i++)
 6       {
 7          BB:for(int j = 0;j < 3;j++)
 8          {
 9             if(j == 2)
10             {
11                break AA;//跳出外循环
12             }
13             System.out.print("* ");
14          }
15          System.out.println();
16       }
17    }
18 }

运行结果:

* *

04.31 控制跳转语句continue语句

    continue的使用场景:在循环语句中,离开使用场景的存在是没有意义的

    continue的作用:结束本次循环,继续下一次循环,也可以带标签使用

 1 class Demo
 2 {
 3    public static void main(String[] args)
 4    {
 5       for(int i = 0;i < 6;i++)
 6       {
 7          if(i == 4)
 8          {
 9             continue;
10          }
11          System.out.print(i+" ");
12       }
13    }
14 }

    运行结果:

0 1 2 3 5

04.32 控制跳转语句return语句

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

04.33 while语句和break的结合使用小芳存钱

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

 1 class Demo
 2 {
 3    public static void main(String[] args)
 4    {
 5       //每天存的钱
 6       double dayMoney = 2.5;
 7       
 8       //存钱的初始化值是0
 9       double daySum = 0;
10  
11       //从第1天开始存
12       int dayCount = 1;
13  
14       while(true)
15       {
16          daySum += dayMoney;
17          if(daySum >= 100)
18          {
19             System.out.println("共花了"+dayCount+"天");
20             break;
21          }
22          if(dayCount % 5 == 0)
23          {
24             //花去6元钱
25             daySum -= 6;
26          }
27          dayCount++;
28       }
29    }
30 }

 

你可能感兴趣的:(Java)