达内java笔记基础5.docx
《达内java笔记基础5.docx》由会员分享,可在线阅读,更多相关《达内java笔记基础5.docx(23页珍藏版)》请在冰豆网上搜索。
达内java笔记基础5
day05AM
############################
分支流程控制
if(else)
编程建议:
1、尽量使用肯定条件,可以减少逻辑思考错误;
2、减少使用else,避免错误发生的概率;
3、减少嵌套层次,一般不要超过2层,避免错误发生的概率;
4、语句块不要超过一个屏幕;
5、严格遵守缩进规则!
开发工具自动缩进设置界面
语法:
if(布尔表达式/分支条件){
语句块;
}//返回布尔值;一行花括号可以省略,多行不能省;
if(布尔表达式/分支条件){
语句块1;
}else{
语句块2;
}
if(布尔表达式/分支条件1){
语句块1;
}elseif(布尔表达式/分支条件2){
语句块2;
}elseif(布尔表达式/分支条件3){
语句块3;
}...
switch(case)
使用情况:
判断条件是整数时使用;
语法:
switch(整数条件){
case常量/字面量:
(break;)
case常量/字面量:
(break;)
case常量/字面量:
(break;)
default:
}
循环流程控制
forwhiledo....while
1、for经典用法:
与次数,连续变化的数列有关的循环”计次,次数,数列“
for(初始化;循环条件;递增){
循环体;
}
花哨玩法:
(面试题)
2、for可以替代任何循环
2.1、死循环
for(;;){
}
for(;true;){
}
2.2、死循环
for(;循环条件;){
}//处理条件限制如:
百分之分数不准超过100或低于0
2.1如:
将输入的一个整数倒转
死循环写法:
注:
当不知道使用什么循环的时候时候,使用死循环。
再找到结束死循环的条件。
2.2如:
验证用户输入
加上
switch--case
while
和for循环可以替换使用;
while循环
语法:
while(循环条件
(1)){
循环体
(2);
}
执行流程:
(1)->true->
(2)->
(1)-true->
(2)->
(1)-false->结束
案例:
判断一个数是否“水仙花数”
水仙花数:
3位自幂数,是一个3位并且各个数字的3次方的和与这个数相等;
例:
代码:
技巧:
把所要缩进的代码选中在按TAB就可以整体的缩进按shift加TAB可以向前缩进
for循环水仙花数:
do...while循环结构
语法:
do{
循环体
(1);
}while(循环条件
(2));
执行流程:
【
(1)->
(2)】-true->【
(1)->
(2)】-true->【
(1)->
(2)】-false->结束
特点:
在循环体结束以后再检查循环是否需要继续执行;
案例:
讲一个整数数字进行翻转;
代码:
概要性的总结:
forwhiledo...while
1.、for常用,“经典实用方式”与固定次数有关循环处理;
2.、for可以替代其它两种循环;
2.1、for(;循环条件;){}替代while(循环条件){}
2.2、死循环for(;;){}替代while(true){};
2.3、死循环for(;;){if(循环条件)break;}替代do...while(循环条件);
注:
有些程序员只使用for解决问题;
3、while循环用于在循环体开始时候判断循环条件;
4、do...while循环用于在循环体结束时候判断循环条件;
5、在其他情况下使用,就用死循环!
在适当的条件时候使用break;
项目案例:
分析:
有3个变量
注:
100的随机数产生的范围是0-99不是1-100;
功能实现(数据的计算,)
步骤:
1、获取用户猜测数字,记录猜测次数;
2、比较是否猜中,如果猜中就结束;
3、如果没有猜中,就提示比较大小;
4、返回第一步
代码:
day05PM
###########################
数组(Array):
概念:
数组变量:
是标识数组的变量名,是引用类型变量
数组:
是全部元素的集合,是内存中的连续存储单元
数组元素:
是数组中每个具体的元素
如:
int[]ary=newint[3];
ary是数组变量;
newint[3]是数组;
ary[0]、ary[1]、ar[2]是数组元素;
草图解释:
数组的语法:
1、数组变量的声明;(类似于类型变量的声明),属于引用类型;
2、数组的创建;(内存分配)
3、数组元素的访问(读写);
1、数组变量的声明:
类型[]变量名;声明数组类型变量,类型可以基本类型/引用类型
int[]ary;声明了"int类型数组"变量
String[]players;声明了”String类型数组“变量
system.out.println(ary[0]);编译错误,没有初始化;
ary=null;//null=空没有的意思;
system.out.println(ary[0]);没有编译错误,但运行异常=空指针异常;发生原因:
变量值为NULL,在访问成员时候发生空指针异常,成员:
属性,方法,元素;
试题:
如上代码执行结果:
A编译错误B运行异常CnullD0
另外一种写法:
intary[];是用于兼容C的语法,Java基本不使用;
2、如何创建数组:
有3种方式
new运算符,用于分配数组内存空间;按照数组长度连续分配空间,数组的元素“自动初始化”有默认值0
new运算返回值是数组的内存首地址,赋值给素组变量
数组变量=new类型[长度];
ary=newint[3];
试题:
草图解释:
数组的元素初始化为0
创建数组三种方式:
1、定义长度为3的数组:
数组变量=new类型[长度];
intary[]=newint[3];
2、直接给数组元素进行初始化,不要给长度
ary=newint[]{4,5,6};
3、数组静态初始化:
可以看做直接给出元素的简化版!
(静态初始化只能用于声明变量直接初始化!
)
int[]ary={5,6,7};
ary={6,7,8};//编译错误,静态初始化数组不能用于赋值;
三种方式区别:
1、如果只是知道长度,不知道具体元素,或者长度很大,采用newint[length]
2、已经知道元素,元素数量不多,使用newint[]{2,3,4};
3、是(第2种)在声明变量时候使用的简化版;int[]ary={4,5,6};
数组元素的自动初始化为“零”值
int/long/byte/shortdouble/floatcharbooleanstring引用类型
00.0\u0000flasenull
字符\u0000是C语言的字符串结束符号,(int)\u0000
byte[]buf=newbyte[1024];//1K=1024byte
代码:
8中基本类型的数组创建过程;
boolean[]boo=newboolean[5];
system.out.println(boo[0]);
3、数组元素的访问(读写)
3.1、使用[]运算,读写数组元素
3.2、使用.length属性获取数组长度
3.3、数组下标范围0~length-1,最后元素length-1;
3.4、超范围访问数组元素,有运行异常;
代码:
(读)
注:
运行一旦出现异常后面的代码不会运行
写、数组元素:
代码:
(写)
数组的“迭代”;
迭代:
是指将数组元素逐一处理一遍。
遍历==迭代;
数组的长度是有限的,使用for迭代;
代码:
注:
项目案例:
成绩管理系统
代码:
主菜单的流程
注:
中间循环退出使用死循环;
软件结果:
方法:
含义:
就是函数;
1、业务层面是软件的功能;
2、本质上是数据的操作算法;
(生活中的动词就是方法)
he.love(her).love就是功能
y=f(x)
f=function功能意思
函数:
计算两个点的距离
y=f(x1,y1,x2,y2)
草图解释:
java的函数定义:
1、在类中定义方法;
2、方法一定定义返回值,如果没有返回值使用void;
3、如果方法有返回值,必须使用return语句;
4、方法可以有参数,参数是方法计算的前提条件;
代码: