黑马程序员_JavaSE学习总结第04天_Java基础语法3

------- android培训、java培训、期待与您交流! ---------- 

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个\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继续

 

流程图:

例:

在控制台输出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)+"\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 }
时间: 2024-10-13 07:28:03

黑马程序员_JavaSE学习总结第04天_Java基础语法3的相关文章

黑马程序员_JavaSE学习总结第02天_Java基础语法

------- android培训.java培训.期待与您交流! ----------  02.01 关键字的概述和使用 关键字概述:被Java语言赋予特定含义的单词 关键字特点:组成关键字的字母全部小写 关键字注意事项:goto和const作为保留字存在,目前并不使用,类似Notepad++这样的高级记事本,针对关键字有特殊的颜色标记,非常直观 保留字:在JDK的新版本中可能提升为关键字 02.02 标识符的概述和组成规则 标识符概述:就是给类,接口,方法,变量等起名字时使用的字符序列 组成规

黑马程序员_JavaSE学习总结第03天_Java基础语法2

------- android培训.java培训.期待与您交流! ---------- 03.01 数据类型中补充的几个小问题 1:在定义Long或者Float类型变量的时候,要加L或者f.   整数默认是int类型,浮点数默认是double.   byte,short在定义的时候,他们接收的其实是一个int类型的值.  2:数据类型转换之默认转换:byte,short,char→int→long→float→double    为什么占用8个字节的long默认转换为4个字节的float?   

黑马程序员_JavaSE学习总结第01天_Java概述

------- android培训.java培训.期待与您交流! ----------  01.01 计算机概述 计算机(Computer):全称电子计算机,俗称电脑. 是一种能够按照程序运行,自动.高速处理海量数据的现代化智能电子设备. 由硬件和软件所组成,没有安装任何软件的计算机称为裸机. 常见的形式有台式计算机.笔记本计算机.大型计算机等. 01.02 计算机硬件和软件概述 计算机硬件(Computer Hardware)是指计算机系统中由电子,机械和光电元件等组成的各种物理装置的总称.

黑马程序员_JavaSE学习总结第06天_Java语言基础2 &amp; 面向对象1

------- android培训.java培训.期待与您交流! ----------  06.01 二维数组概述和格式1的讲解 二维数组概述:二维数组其实就是一个元素为一维数组的数组 格式1:数据类型[][] 变量名 = new 数据类型[m][n]; m表示这个二维数组有多少个一维数组,n表示每一个一维数组的元素个数 例:int[][] arr = new int[3][2]; 定义了一个二维数组arr 这个二维数组有3个一维数组,名称是arr[0],arr[1],arr[2] 每个一维数组

黑马程序员_JavaSE学习总结第10天_面向对象5

------- android培训.java培训.期待与您交流! ----------  10.01 运动员和教练案例分析 教练和运动员案例:运动员分乒乓球运动员和篮球运动员,教练分乒乓球教练和篮球教练.为了出国交流,跟乒乓球相关的人员都需要学习英语. 分析:   10.02 运动员和教练案例实现 1 //定义一个说英语的接口 2 interface SpeakEnglish 3 { 4 //说英语 5 public abstract void speak(); 6 } 7 8 //定义人的抽象

黑马程序员_JavaSE学习总结第11天_开发工具 &amp; API常用对象1

------- android培训.java培训.期待与您交流! ----------  11.01 常见开发工具介绍 1:操作系统自带的记事本软件 2:高级记事本软件例:Editplus,Notepad++,UltraEdit 3:集成开发环境 IDE(Integrated Development Environment) 这种软件是用于程序开发环境的应用程序,一般包括代码编辑器,编译器,调试器和图形界面工具. 集成了代码编写功能,分析功能,编译功能,调试功能等一体化的开发软件.具备这一特性的

黑马程序员_JavaSE学习总结第08天_面向对象3

------- android培训.java培训.期待与您交流! ----------  08.01 工具类中使用静态 例: 1 class ArrayTool 2 { 3 //将构造方法私有,外界不能创建该类的对象 4 private ArrayTool(){} 5 //遍历数组 6 public static void print(int[] arr) 7 { 8 System.out.print("["); 9 for(int i = 0;i < arr.length;i+

黑马程序员_JavaSE学习总结第19天_IO流1

------- android培训.java培训.期待与您交流! ----------  19.01  集合的特点和数据结构总结 HashSet.HashMap.Hashtable判断元素唯一性的方式: 通过对象的hashCode和equals方法来完成元素唯一性 如果对象的hashCode值不同,那么不用判断equals方法,就直接存储到哈希表中. 如果对象的hashCode值相同,那么要再次判断对象的equals方法是否为true. 如果为true,视为相同元素,不存.如果为false,那么

黑马程序员_JavaSE学习总结第13天_API常用对象3

------- android培训.java培训.期待与您交流! ----------  13.01 StringBuffer的概述 StringBuffer类概述:线程安全的可变字符序列.一个类似于 String 的字符串缓冲区,但不能修改.虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容. StringBuffer和String的区别:StringBuffer长度和内容可变,String不可变.使用StringBuffer做字符串的拼接不会浪费太多资