JAVA 笔记 (四)-- 三大结构语句
1.选择结构 if:
a.why: 在实际生活中,有些场合需要满足一定条件才能继续往下进行?
b.语法:
c.eg:
2、选择结构 if...else...
3、练习
问题 1:分段的条件如何实现?优、良、中、及格 ?
多重选择结构 if...else
a.why:
在实际生活中,有些场合满足一定范围条件进行相关操作,满足其他范围进行其他操作?
b.语法:
条件: 是 boolean 或者 boolean 结果的表达式,如果满足条件 1 执行代码 1,满足条件 N 执行代码 N,else 中可以省略。
重点: 多重条件选择注意区间段的书写
问题 2:在判定一定条件的时候,需要提前对数据进行判定处理?
4.嵌套选择结构:
a.why: 在实际生活中,我们有些判定需要放入到其他的判定内部,有着先后顺序?
b.语法:
条件:是 boolean 或者 boolean 结果的表达式,内容同基本选择机构一致
5、switch 选择结构:
问题: 是否有其他的选择结构?如果条件特别多,并且条件不是范围而是固定值?
a.why:
在实际生活中,有些场合需要使用多重选择结构,并且多重选择结构中的条件是确定值,确定值判定有很多?
b.语法:
表达式可以是 byte,short,int,char,Enum(枚举),JDK1.7 以前不能使用 String,1.7 及 1.7 以后可以使用 String
**重点:**g,float,double 是不能使用的表达式类型
break 和 default 模块可以省略不写;
break 表示结束判定,如果省略了会继续执行之后的指令,省略需谨慎;
常量后的":"是不允许省略的;
default 模块可以放置在前方
注意执行顺序和 break 的结合使用的问题
**重点:**switch 和 if 比较:
相同点:
都是多分支比较结构
不同点:
switch 只用于等值判定条件;
if 没有条件限制,但是一般用于区间判定
c.举例说明
eg:输入月份,根据月份输出该月份的天数
eg:综合例子:输入年份,月份,分别将该年月的天数输出
eg:
输出结果:周二
注意:switch 语句也是可以支持嵌套的。
6、while 循环结构
a.why: 在实际生活中,一些重复冗余的操作--如何优化?
b.语法:
初始值,循环条件,循环内容,迭代条件
7、debug 调试:
最基本的操作是:
首先在一个 java 文件中设断点,然后 debug as-->open debug Dialog,然后在对话框中选类后--> Run 当程序走到断点处就会转到 debug 视图下。
F5 键与 F6 键均为单步调试,F5 是 step into,也就是进入本行代码中执行,F6 是 step over,也就是执行本行代码,跳到下一行,
F7 是跳出函数
F8 是执行到最后。
Step Into (also F5) 跳入
Step Over (also F6) 跳过
Step Return (also F7) 执行完当前 method,然后 return 跳出此 method
step Filter 逐步过滤 一直执行直到遇到未经过滤的位置或断点(设置 Filter:window-preferences-java-Debug-step Filtering)
resume 重新开始执行 debug,一直运行直到遇到 breakpoint
hit count 设置执行次数 适合程序中的 for 循环(设置 breakpoint view-右键 hit count)
inspect 检查 运算。执行一个表达式显示执行值
watch 实时地监视变量的变化
我们常说的断点(breakpoints)是指 line breakpoints,除了 line breakpoints,还有其他的断点类型:field(watchpoint)breakpoint,method breakpoint,exception breakpoint.
field breakpoint 也叫 watchpoint(监视点) 当成员变量被读取或修改时暂挂
添加 method breakpoint 进入/离开此方法时暂挂(Run-method breakpoint)
添加 Exception breakpoint 捕抓到 Execption 时暂挂(待续...)
variables 视图里的变量可以改变变量值,在 variables 视图选择变量点击右键--change value.一次来进行快速调试。
debug 过程中修改了某些 code 后--〉save&build-->resume-->重新暂挂于断点
断点属性:
hit count 执行多少次数后暂挂 用于循环
enable condition 遇到符合你输入条件(为 ture\改变时)就暂挂
suspend thread 多线程时暂挂此线程
suspend VM 暂挂虚拟机
8、do...while 循环
a.why:
实际操作中,需要先执行了以后再进行判定是否需要继续?
b.语法:
初始值
重点: 最后的分号一定不要省略
while 与 do...while 循环总结:
相同点:都是循环结构; 内容都是含有四个部分:初始值,循环条件,循环内容,迭代条件;
区别:语法不同; 执行顺序不同:while 先判定再执行,do...while 先执行再判定; 执行次数:while 执行是 0 或多次;do...while 执行是 1 或多次;
9、循环结构 for:
a.why: 解决实际问题中重复操作
b.语法:
表达式 1 为循环参数的初始值;表达式 2 为循环判定(结束)条件;表达式 3 为循环迭代条件执行代码为需要重复的操作执行的顺序:1-2-4-3-1-2-4-3...
10、for 循环变形:
a.for(){};
初始值等含有多个同时操作
b. 正常执行:
初始变量放在外部,不再做一个 for 循环的局部变量;
c. 死循环
语法没有问题,但是缺少结束条件,死循环
语法没有问题,但是缺少迭代条件,死循环;
重点: for、if 结构中如果只有一行指令的时候可以省略{},但是建议大家不要省略;
11.break:
在循环体中表示结束整个循环,一般同判定结合使用;
12.continue:
在循环体中表示结束当前层循环,进入下一层循环;
13.return:
结束方法体;
14.break、continue、return 比较:
使用场合
break
常用于switch
结构和循环结构中
continue
一般用于循环结构中
作用(循环结构中)
15、循环总结:(while,do...while,for)
相同点:
需要多次重复执行一个或多个任务的问题考虑使用循环来解决; 无论哪一种循环结构,都有 4 个必不可少的部分:初始部分、循环条件、循环体、迭代部分
区别:
语法;
执行顺序:
while 循环:先判断,再执行
do-while 循环:先执行,再判断
for 循环:先判断,再执行
适用场合:
循环次数确定的情况,通常选用 for 循环
循环次数不确定的情况,通常选用 while 或 do-while 循环
知识点补充:
1、Math.random()获取随机数字
范围是0.0 <= Math.random() < 1.0
重点:Math 的 API 使用
2、转义字符:
练习题
1、有 1020 个西瓜,第一天卖掉总数的一半后又多卖出两个,以后每天卖剩下的一半多两个,问几天以后能卖完?
2、猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃了一半,又多吃一个,以后每天都吃了前一天剩下的一半零一个。到第 10 天早上想再吃时,见只剩下一个桃子。求第一天共摘了多少个?
3、有个人想知道,一年之内一对兔子能繁殖多少对?于是就筑了一道围墙把一对兔子关在里面。已知一对兔子每个月可以生一对小兔子,而一对兔子从出生后第 3 个月起每月生一对小兔子。假如一年内没有发生死亡现象,那么,一对兔子一年内(12 个月)能繁殖成多少对?分析:兔子的规律为数列,1,1,2,3,5,8,13,21
4、任意输入一个整数(小于 10 位),输出它一共有多少位。
5、计算 1000 以内所有不能被 7 整除的整数之和
6、本金 10000 元存入银行,年利率是千分之三,每过 1 年,将本金和利息相加作为新的本金。计算 5 年后,获得的本金是
7、计算 1+2-3+4-5+6-7…+100 的结果//注意审题
8、一张纸的厚度大约是 0.08mm,对折多少次之后能达到或超过珠穆朗玛峰的高度(8848.13 米)
9、从控制台输入一个正整数,计算该数的阶乘。例如输入 5,阶乘为 54321
10、你的程序要读入一系列正整数数据,输入-1 表示输入结束,-1 本身不是输入的数据。程序输出读到的数据中的奇数和偶数的个数
评论