Java复习第二天
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复习第二天的更多相关文章
- 2017年1月1日 java学习第二天复习
今天是新年的第一天,以前学习没有总结习惯,学习效率和成果都很不好. 学习的过程就是反复的复习和不断学习的过程,开始今天的学习总结 学习java的第二天. 今天学习了java最基础的一些内容,照着 ...
- java 复习001
java 复习001 比较随意的记录下我的java复习笔记 ArrayList 内存扩展方法 分配一片更大的内存空间,复制原有的数据到新的内存中,让引用指向新的内存地址 ArrayList在内存不够时 ...
- java 复习总结
java 复习总结 命名方法 创建文件的名称应该和类的名称一致,不然会报错. 类采用首字母大写的方式来命名,如果是多个单词的类名,则每个单词首字母都大写,例如:HelloWorld . 方法采用驼峰命 ...
- java复习面向对象(二)
java复习面向对象(二) 1.static关键字 举例图片 静态变量 使用static修饰的成员变量是静态变量 如果一个成员变量使用了关键字static,那么这个变量不属于对象自己,而属于所在的类多 ...
- java 复习003 之排序篇
由java 复习003跳转过来的C语言实现版见some-sort-algorithms 快速排序(不稳定 O(n log n)) package vell.bibi.sort_algorithms; ...
- JAVA入门第二季(mooc-笔记)
相关信息 /** * @subject <学习与创业>作业1 * @author 信管1142班 201411671210 赖俊杰 * @className <JAVA入门第二季&g ...
- java复习(1)---java与C++区别
[系列说明]java复习系列适宜有过java学习或C++基础或了解java初步知识的人阅读,目的是为了帮助学习过java但是好久没用已经遗忘了的童鞋快速捡起来.或者教给想快速学习java的童鞋如何应用 ...
- 2017面向对象程序设计(Java)第二周学习总结
2017面向对象程序设计(Java)第二周学习总结 直系学妹学弟们好!额...不要问我为什么把学妹放前面,我也不知道!我只是你们和蔼可亲的学长一枚而已.也不要问为什么是第二周学习总结而不是第一周,因为 ...
- 《Effective Java(中文第二版)》【PDF】下载
<Effective Java(中文第二版)>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230382186 Java(中文第二版)& ...
随机推荐
- ACM-ICPC 2018北京网络赛-A题 Saving Tang Monk II-优先队列
做法:优先队列模板题,按步数从小到大为优先级,PASS掉曾经以相同氧气瓶走过的地方就好了 题目1 : Saving Tang Monk II 时间限制:1000ms 单点时限:1000ms 内存限制: ...
- PL/SQL数据库开发那点事
PL/SQL数据库开发那点事-->编程,存储程序 在SQL*plus 中编写PL/SQL程序,并在SQL*plus 中执行它, PL/SQL块的代码就存放在SQL*plus的缓冲区中.如果在SQ ...
- 公司git流程图,广告业务术语
- replace函数结合正则表达式实现转化成驼峰与转化成连接字符串的方法
//连接符转成驼峰写法 function toCamel(str){ var reg=/-(\w)/g; return str.replace(reg,function(){ return argum ...
- redis 学习笔记(一)
redis 基本类型 String 基本操作: GET 获取存储在给定键中的值 SET 设置存储在给定键中的值 DEL 删除存储在给定键中的值 List 基本操作: LPUSH/RPUSH 从左/右推 ...
- 高阶篇:4.1.2)QFDII(设计要求逐层分配给各零件)
本章目的:明确QFDII的作用:输入为设计要求(Design Feature),输出为零件特征(Part Characteristic),将设计要求分配到每一个零件特征中去: 本章开始介绍产品结构设计 ...
- struts2后台向前台传值为空
今天遇到了一个bug,在后台定义了一个list,然后在前台展示,结果前台接手到的一直是个空,然后找了半天最后才知道是名字名字的问题,这个变量是第一个字母小写,然后第二个字母大写了,然后自动生成的get ...
- redis的主从同步
一.redis的主从操作流程 1. 准备三个redis配置文件 #进入redis的配置文件夹,准备好这几个文件,6379不用管,默认的,和这次操作无关 [root@qishi ~]# cd /etc/ ...
- 使用Filter解决登录中乱码问题
使用Filter解决登录中乱码问题 衔接:https://www.cnblogs.com/zst18980621948/p/10654088.html 1.工作目录 新增Filter类 2.Login ...
- docker 把容器commit成镜像
该方法是使用docker commit 命令,其命令格式为: docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] 主要参数选项包括: -a ,– ...