Day04

1、switch语句的格式?针对格式的解释?以及注意事项?

(1)格式:

switch(表达式) {

case 值1:

语句体1;

break;

case 值2:

语句体2;

break;

...

default:

语句体n+1;

break;

}

(2)格式解释说明:

switch:说明这是switch语句。

表达式:可以是byte,short,int,char

JDK5以后可以是枚举

JDK7以后可以是字符串

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

break:表示程序到这里中断,跳出switch语句

default:如果所有的情况都不匹配,就执行这里,相当于if语句中的else。

(3)注意事项:

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

B:default可以省略吗?

可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。

特殊情况:case就可以把值固定。A,B,C,D

C:break可以省略吗?

可以省略,但是结果可能不是我们想要的。

会出现一个现象:case穿透。

最终我们建议不要省略

D:default一定要在最后吗?

不是,可以在任意位置。但是建议在最后。

E:switch语句的结束条件

a:遇到break就结束了

b:执行到末尾就结束了

------------------------------------------------------------------

2、看程序,分析下面程序的结果:

int x = 2,y=3;

switch(x)

{

default:

y++;

case 3:

y++;

break;

case 4:

y++;

}

System.out.println("y="+y);

输出:y=5

------------------------------------------------------------------

3、根据输入的值,判断是星期几。(分别用if语句和switch语句实现)

     输入:1   输出:星期1

Switch 语句:

public class Test02 {

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

System.out.print("请输入数值:");

int week=scanner.nextInt();

switch(week)

{

case 1:

System.out.println("星期一");

break;

case 2:

System.out.println("星期二");

break;

case 3:

System.out.println("星期三");

break;

case 4:

System.out.println("星期四");

break;

case 5:

System.out.println("星期五");

break;

case 6:

System.out.println("星期六");

break;

case 7:

System.out.println("星期天");

break;

default:

System.out.println("数值错误!");

}

}

}

If语句:

public class Test03 {

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

System.out.print("请输入数值:");

int week=scanner.nextInt();

if(week==1){

System.out.println("星期一");

}else if(week==2){

System.out.println("星期二");

}else if(week==3){

System.out.println("星期三");

}else if(week==4){

System.out.println("星期四");

}else if(week==5){

System.out.println("星期五");

}else if(week==6){

System.out.println("星期六");

}else if(week==7){

System.out.println("星期天");

}else

System.out.println("数值错误!");

}

}

------------------------------------------------------------------

4、for循环的格式? 用for循环完成案例。

(1)for循环的格式

A: for循环语句

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

循环体语句;

}

(2)注意事项

a:判断条件语句无论简单还是复杂,结果是boolean类型

b:循环体语句如果是一条,可以省略大括号,但是不建议

c:有分号就没有左大括号,有左大括号就没有分号

求和

//求1-100之和。

int sum = 0;

for(int x=1; x<=100; x++) {

sum +=x;

}

System.out.println("1-100之和是:"+sum);

求偶数和

//求出1-100之间偶数和

int sum2 = 0;

for(int x=1; x<=100; x++) {

if(x%2 == 0) {

sum2 += x;

}

}

System.out.println("1-100偶数之和是:"+sum2);

求奇数和

//求出1-100之间奇数和

int sum3 = 0;

for(int x=1; x<=100; x++) {

if(x%2 != 0) {

sum3 += x;

}

}

System.out.println("1-100奇数之和是:"+sum3);

打印水仙花数

public class Test06 {

public static void main(String[] args) {

//三位数告诉了我们范围,用for循环就可以搞定

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);

}

}

}

}

统计水仙花数

public class Test05 {

public static void main(String[] args) {

//定义统计变量,初始化值是0

int count = 0;

//三位数告诉了我们范围,用for循环就可以搞定

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)) {

//如果满足要求就计数。

count++;

}

}

System.out.println("水仙花数共有"+count+"个");

}

}

九九乘法表

public class Test07 {

public static void main(String[] args){

for (int i=1;i<=9;i++) {

for (int j=1;j<=i;j++){

System.out.print(i+"*"+j+"="+(i*j)+"\t");

}

System.out.print("\n");

}

}

}

------------------------------------------------------------------

5、while循环的格式?要能看懂执行流程

(1) while循环的格式

A:while循环

while(判断条件语句) {

循环体语句;

}

B:do...while循环

do {

循环体语句;

}while(判断条件语句);

(2)循环使用的注意事项(死循环)

A:一定要注意修改控制条件,否则容易出现死循环。

B:最简单的死循环格式

a:while(true){...}

b:for(;;){}

用while循环完成如下案例

求和

public class Test08 {

public static void main(String[] args){

int sum2 = 0;

int y=1;

while(y<=100) {

sum2+=y;

y++;

}

System.out.println("sum2:"+sum2);

}

}

纸张折叠成珠穆朗玛峰高度的次数

public class Test09 {

public static void main(String[] args) {

int count = 0;

//最高山峰是珠穆朗玛峰:8848m这是最终的厚度

//我现在有一张足够大的纸张,厚度为:0.01m这是初始厚度

int end = 884800;

int start = 1;

while(start<end) {

//只要每次变化的厚度没有超过珠穆朗玛峰的高度,就折叠,统计变量++

count++;

//折叠一次有什么变化呢?就是厚度是以前的2倍。

start *= 2;

System.out.println("第"+count+"次厚度是"+start);

}

//输出统计变量。

System.out.println("要叠"+count+"次");

}

}

------------------------------------------------------------------

6、break,continue和return分别有什么用?

(1)break:中断的意思

A:用在循环和switch语句中,离开此应用场景无意义。

B:作用

a:跳出单层循环

b:跳出多层循环,需要标签语句的配合

(2)continue:继续

A:用在循环中,离开此应用场景无意义。

B:作用

a:跳出单层循环的一次,可以继续下一次

(3)return:返回

A:用于结束方法的,后面还会在继续讲解和使用。

B:一旦遇到return,程序就不会在继续往后执行。

------------------------------------------------------------------

Day05

1、函数的概念?函数的格式?格式的解释说明

(1)概念:完成特定功能的代码块。

(2)格式:

修饰符 返回值类型 方法名(参数类型 参数1,参数类型 参数2...) {

方法体语句;

return 返回值;

}

(3)格式解释说明:

修饰符:目前就用 public static。后面再详细讲解其他修饰符

返回值类型:就是功能结果的数据类型

方法名:就是起了一个名字,方便我们调用该方法。

参数类型:就是参数的数据类型

参数名:就是变量

参数分类:

实参:实际参与运算的数据

形参:方法上定义的,用于接收实际参数的变量

方法体语句:就是完成功能的代码块

return:结束方法

返回值:就是功能的结果,由return带给调用者。

------------------------------------------------------------------

2、函数的调用

A:明确返回值类型的函数调用

B:void类型的函数调用

------------------------------------------------------------------

3、什么是函数重载?

在同一个类中,方法名相同,参数列表不同的函数,与返回值无关。

------------------------------------------------------------------

4、数组的概念?有什么特点?

(1)数组:存储同一种数据类型的多个元素的容器。

(2)特点:每一个元素都有编号,从0开始,最大编号是长度-1。

编号的专业叫法:索引

------------------------------------------------------------------

5、一维数组的定义格式?

A:数据类型[] 数组名;

B:数据类型 数组名[];

------------------------------------------------------------------

6、数组操作的两个小问题

A:动态初始化

只给长度,系统给出默认值

举例:int[] arr = new int[3];

B:静态初始化

给出值,系统决定长度

举例:int[] arr = new int[]{1,2,3};

简化版:int[] arr = {1,2,3};

------------------------------------------------------------------

7、数组常见操作:

数组遍历(依次输出数组中的每一个元素)

//方式1:

public static void printArray(int[] arr) {

for(int x=0; x<arr.length; x++) {

System.out.println(arr[x]);

}

}

//方式2:

public static void printArray2(int[] arr) {

System.out.print("[");

for(int x=0; x<arr.length; x++) {

if(x == arr.length-1) {

System.out.println(arr[x]+"]");

}else {

System.out.println(arr[x]+", ");

}

}

}

数组获取最值(获取数组中的最大值最小值)

//最大值:

public static int getMax(int[] arr) {

int max = arr[0];

for(int x=1; x<arr.length; x++) {

if(arr[x] > max) {

max = arr[x];

}

}

return max;

}

//最小值:

public static int getMin(int[] arr) {

int min = arr[0];

for(int x=1; x<arr.length; x++) {

if(arr[x] < min) {

min = arr[x];

}

}

return min;

}

数组元素逆序 (就是把元素对调)

//方式1:

public static void reverse(int[] arr) {

for(int x=0; x<arr.length/2; x++) {

int temp = arr[x];

arr[x] = arr[arr.length-1-x];

arr[arr.length-1-x] = temp;

}

}

//方式2:

public static void reverse2(int[] arr) {

for(int start=0,end=arr.length-1; start<=end; start++,end--) {

int temp = arr[start];

arr[start] = arr[end];

arr[end] = temp;

}

}

数组元素查找(查找指定元素第一次在数组中出现的索引)

//方式1:

public static int getIndex(int[] arr,int value) {

for(int x=0; x<arr.length; x++) {

if(arr[x] == value) {

return x;

}

}

return -1;

}

//方式2:

public static int getIndex2(int[] arr,int value) {

int index = -1;

for(int x=0; x<arr.length; x++) {

if(arr[x] == value) {

index = x;

break;

}

}

return index;

}

Java复习第二天的更多相关文章

  1. 2017年1月1日 java学习第二天复习

    今天是新年的第一天,以前学习没有总结习惯,学习效率和成果都很不好.  学习的过程就是反复的复习和不断学习的过程,开始今天的学习总结   学习java的第二天. 今天学习了java最基础的一些内容,照着 ...

  2. java 复习001

    java 复习001 比较随意的记录下我的java复习笔记 ArrayList 内存扩展方法 分配一片更大的内存空间,复制原有的数据到新的内存中,让引用指向新的内存地址 ArrayList在内存不够时 ...

  3. java 复习总结

    java 复习总结 命名方法 创建文件的名称应该和类的名称一致,不然会报错. 类采用首字母大写的方式来命名,如果是多个单词的类名,则每个单词首字母都大写,例如:HelloWorld . 方法采用驼峰命 ...

  4. java复习面向对象(二)

    java复习面向对象(二) 1.static关键字 举例图片 静态变量 使用static修饰的成员变量是静态变量 如果一个成员变量使用了关键字static,那么这个变量不属于对象自己,而属于所在的类多 ...

  5. java 复习003 之排序篇

    由java 复习003跳转过来的C语言实现版见some-sort-algorithms 快速排序(不稳定 O(n log n)) package vell.bibi.sort_algorithms; ...

  6. JAVA入门第二季(mooc-笔记)

    相关信息 /** * @subject <学习与创业>作业1 * @author 信管1142班 201411671210 赖俊杰 * @className <JAVA入门第二季&g ...

  7. java复习(1)---java与C++区别

    [系列说明]java复习系列适宜有过java学习或C++基础或了解java初步知识的人阅读,目的是为了帮助学习过java但是好久没用已经遗忘了的童鞋快速捡起来.或者教给想快速学习java的童鞋如何应用 ...

  8. 2017面向对象程序设计(Java)第二周学习总结

    2017面向对象程序设计(Java)第二周学习总结 直系学妹学弟们好!额...不要问我为什么把学妹放前面,我也不知道!我只是你们和蔼可亲的学长一枚而已.也不要问为什么是第二周学习总结而不是第一周,因为 ...

  9. 《Effective Java(中文第二版)》【PDF】下载

    <Effective Java(中文第二版)>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230382186 Java(中文第二版)& ...

随机推荐

  1. 利用Logstash plugins做更多的事情

    1. 引言 之前一篇文章<Logstash 介绍及linux下部署>,我们实现了logstash的安装以及简单的控制台标准输入输出测试,那么logstash能不能做更多的事情呢?答案是肯定 ...

  2. swift 的基本类型之字符串

    一:创建字符串 //字符串的创建有两种 //不可变字符串 let str = "I'm a string" //可变字符串 var string = "I'm a mut ...

  3. 算法 PK 猫咪 | 章鱼保罗后继竟然是只猫?

    简评:一只名叫阿喀琉斯(Achilles)的白猫一边小声叫着,一边慵懒地在分别插有俄罗斯和沙特阿拉伯国旗的食盆间踱步.这只看起来并不出众的小猫住在俄罗斯圣彼得堡埃尔米塔日博物馆(State Hermi ...

  4. java字段中初始化的规律与如何用静态成员函数调用非静态成员

    java字段中初始化的规律: 执行以下代码,出现的结果是什么? class InitializeBlockClass{ { field=200; } public int field=100; pub ...

  5. 2D激光SLAM算法比较+cartographer

    Hector slam: Hector slam利用高斯牛顿方法解决scan-matching问题,对传感器要求较高. 缺点:需要雷达(LRS)的更新频率较高,测量噪声小.所以在制图过程中,需要rob ...

  6. redis的主从同步

    一.redis的主从操作流程 1. 准备三个redis配置文件 #进入redis的配置文件夹,准备好这几个文件,6379不用管,默认的,和这次操作无关 [root@qishi ~]# cd /etc/ ...

  7. PIE SDK与GeoServer结合说明文档

    1.  GeoServer简介 GeoServer是OpenGIS Web服务器规范的J2EE实现的社区开源项目,利用GeoServer可以方便的发布地图数据,允许用户对特征数据进行更新.删除.插入操 ...

  8. 批量生成python自动化测试脚本

    先前有家供应商与我们合作开发自动化工程,采用的py unittest作为脚本运行框架.我发现他们出的脚本都是挨个手写的,格式上也是参差不齐.所以有了根据用例表批量生成脚本的一段小代码 对一个测试脚本必 ...

  9. node.js修改全局安装文件路径

    在进行 node.js 的开发过程中,我们需要下载大量的依赖模块,为了不让 c 盘的东西太过于散乱,可以通过修改node的配置参数,来修改node依赖的下载路径. 步骤: ①创建两个文件夹:node_ ...

  10. 实现Map按key或按value排序

    原理思路:用List实现排序,然后将List中的值遍历存入到LinkedHashMap 实现方式: //这里将map.entrySet()转换成list List<Map.Entry<St ...