• JavaSE学习总结第04天_Java基础语法3


    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语句体部分,然后程序结束。

    流程图:

     

    例:键盘录入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个
    B.4个
    C.6个
    D.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
    world
    china
    develop");
     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继续

     

    流程图:

    例:在控制台输出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。

    流程图:

    例:

    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循环适合判断次数不明确操作

     

    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(判断条件语句);

     

    流程图:

     

    例:

    复制代码
    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)+"	");
    10          }
    11          System.out.println();
    12       }
    13    }
    14 }
    复制代码

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

    ' ':TAB键,制表符

    ' ':回车

    ' ':换行

    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知多少(57)主线程
    Java知多少(56)线程模型
    Java知多少(55)线程
    Java知多少(54)断言详解
    Java知多少(53)使用Java创建自己的异常子类
    Java知多少(52)内置异常
    Java知多少(51)finally
    Java知多少(50)Java throws子句
    Java知多少(49)throw:异常的抛出
    Java知多少(48)try语句的嵌套
  • 原文地址:https://www.cnblogs.com/hoop-superman/p/5495664.html
Copyright © 2020-2023  润新知