博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA笔记(四)--三大结构语句
阅读量:2094 次
发布时间:2019-04-29

本文共 6356 字,大约阅读时间需要 21 分钟。

在这里插入图片描述

1.选择结构if:

a.why: 在实际生活中,有些场合需要满足一定条件才能继续往下进行?

b.语法:

if(条件){
//条件是 boolean 或者 boolean结果的表达式 执行代码;}

c.eg:

@Test   	public void TestA(){
//1. 简单的if条件结构 int a =10; int b =5; if(a>b){
//()括号里面放入的是关系表达式或者逻辑表达式 System.out.println("a的值比b的值大!"); } }

2、选择结构if…else…

if(条件){
//条件是 boolean 或者boolean结果的表达式,如果条件为true执行代码1,如果为false,执行代码2; 执行代码1;}else{
执行代码2;}
@Test    public void TestB(){
//2. if...else条件结构 int a =10; int b =15; if(a>b){
System.out.println("a的值比b的值大!"); }else{
System.out.println("a的值比b的值小!"); } }

3、练习

问题1:分段的条件如何实现?优、良、中、及格 ?

多重选择结构 if…else

a.why:

​ 在实际生活中,有些场合满足一定范围条件进行相关操作,满足其他范围进行其他操作?

b.语法:

if(条件1){
执行代码1}else if(条件2){
执行代码2}...else{
最终执行代码}
@Test    public void TestC(){
//3. if..else if if...else if else //多重if结构 分区间问题 int score = 89; //定义某一个学生分数 if(score>=90){
System.out.println("成绩优秀!"); }else if(score>=80){
System.out.println("成绩良好!"); }else if(score>=70){
System.out.println("成绩良好!"); }else if(score>=60){
System.out.println("成绩合格!"); }else {
System.out.println("成绩不合格!"); } }}

条件: 是 boolean 或者boolean结果的表达式,如果满足条件1执行代码1,满足条件N执行代码N,else中可以省略。

重点: 多重条件选择注意区间段的书写

问题2:在判定一定条件的时候,需要提前对数据进行判定处理?

4.嵌套选择结构:

a.why: 在实际生活中,我们有些判定需要放入到其他的判定内部,有着先后顺序?

b.语法:

if(条件1){
if(条件1.1){
}else{
}}else{
}

条件:是boolean或者boolean结果的表达式,内容同基本选择机构一致

5、switch选择结构:

问题: 是否有其他的选择结构?如果条件特别多,并且条件不是范围而是固定值?

a.why:

在实际生活中,有些场合需要使用多重选择结构,并且多重选择结构中的条件是确定值,确定值判定有很多?

b.语法:

switch(表达式){
case 常量1: 执行代码1; break; case 常量2: 执行代码2; break; ... default: 执行代码; break;}

表达式可以是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:

public static void main(String[] args) {
int a = 2; switch(a){
case 1: System.out.println("周一"); break; case 2: System.out.println("周二"); break; case 3: System.out.println("周三"); break; default: System.out.println("超出范围"); }}

输出结果:周二

注意:switch语句也是可以支持嵌套的。

6、while循环结构

a.why: 在实际生活中,一些重复冗余的操作–如何优化?

b.语法:

初始值int i=1;while(条件i<=100){
执行代码; 迭代条件i++;}
public static void main(String[] args) {
int a = 1; // 定义用来计数的变量 double sum = 10000; //定义一个 存放本金的变量 while (a <= 5) {
//计算5 年后的本金 sum += sum * 0.003; a++; } System.out.println(sum);}

初始值,循环条件,循环内容,迭代条件

7、debug调试:

最基本的操作是:

  1. 首先在一个java文件中设断点,然后debug as-->open debug Dialog,然后在对话框中选类后--> Run
    当程序走到断点处就会转到debug视图下。
  2. F5键与F6键均为单步调试,F5是step into,也就是进入本行代码中执行,F6是step over,
    也就是执行本行代码,跳到下一行,
  3. F7是跳出函数
  4. F8是执行到最后。
  1. Step Into (also F5) 跳入
  2. Step Over (also F6) 跳过
  3. Step Return (also F7) 执行完当前method,然后return跳出此method
  4. step Filter 逐步过滤 一直执行直到遇到未经过滤的位置或断点(设置Filter:window-preferences-java-Debug-step Filtering)
  5. resume 重新开始执行debug,一直运行直到遇到breakpoint
  6. hit count 设置执行次数 适合程序中的for循环(设置 breakpoint view-右键hit count)
  7. inspect 检查 运算。执行一个表达式显示执行值
  8. watch 实时地监视变量的变化
  9. 我们常说的断点(breakpoints)是指line breakpoints,除了line breakpoints,还有其他的断点类型:field(watchpoint)breakpoint,method breakpoint,exception breakpoint.
  10. field breakpoint 也叫watchpoint(监视点) 当成员变量被读取或修改时暂挂
  11. 添加method breakpoint 进入/离开此方法时暂挂(Run-method breakpoint)
  12. 添加Exception breakpoint 捕抓到Execption时暂挂(待续…)
  13. variables 视图里的变量可以改变变量值,在variables 视图选择变量点击右键–change value.一次来进行快速调试。
  14. debug 过程中修改了某些code后–〉save&build–>resume–>重新暂挂于断点

断点属性:

  1. hit count 执行多少次数后暂挂 用于循环
  2. enable condition 遇到符合你输入条件(为ture\改变时)就暂挂
  3. suspend thread 多线程时暂挂此线程
  4. suspend VM 暂挂虚拟机

8、do…while循环

a.why:

实际操作中,需要先执行了以后再进行判定是否需要继续?

b.语法:

初始值

do{
重复执行代码; 迭代内容;}while(循环判定条件);
public static void main(String[] args) {
int i = 1;// 初始化语句 do {
System.out.println("我想看,复仇者联盟4");// 循环体 i++;// 步进语句 } while (i <= 10);// 条件判断}

重点: 最后的分号一定不要省略

while与do…while循环总结:

  • 相同点:
    都是循环结构;
    内容都是含有四个部分:初始值,循环条件,循环内容,迭代条件;
  • 区别:
    语法不同;
    执行顺序不同:
    while先判定再执行,do…while先执行再判定;
    执行次数:while执行是0或多次;do…while执行是1或多次;

9、循环结构for:

a.why: 解决实际问题中重复操作

b.语法:

for(表达式1;表达式2;表达式3){
执行代码4;}

表达式1为循环参数的初始值;表达式2为循环判定(结束)条件;表达式3为循环迭代条件执行代码为需要重复的操作执行的顺序:1-2-4-3-1-2-4-3…

10、for循环变形:

a.for(){};

​ 初始值等含有多个同时操作

b. 正常执行:

int i=0;for(;i<10;i++){
执行代码}

初始变量放在外部,不再做一个for循环的局部变量;

c. 死循环

for(int i=0;;i++){
执行代码;}

​ 语法没有问题,但是缺少结束条件,死循环

​ 语法没有问题,但是缺少迭代条件,死循环;

for(int i=0;;){
}for(;;)
public static void main(String[] args){
int run = 1; for(;run<=5;run++){
System.out.println("跑第: " + run + "次"); } System.out.println("run: "+run);}

重点: for、if结构中如果只有一行指令的时候可以省略{},但是建议大家不要省略;

11.break:

​ 在循环体中表示结束整个循环,一般同判定结合使用;

12.continue:

​ 在循环体中表示结束当前层循环,进入下一层循环;

13.return:

​ 结束方法体;

14.break、continue、return比较:

使用场合

break常用于switch结构和循环结构中

continue一般用于循环结构中

作用(循环结构中)

break语句终止某个循环,程序跳转到循环块外的下一条语句continue跳出本次循环,进入下一次循环return:结束当前方法的执行并退出,返回到调用该方法的语句处

15、循环总结:(while,do…while,for)

相同点:

需要多次重复执行一个或多个任务的问题考虑使用循环来解决;

无论哪一种循环结构,都有4个必不可少的部分:初始部分、循环条件、循环体、迭代部分

区别:

语法;

执行顺序:

while 循环:先判断,再执行

do-while循环:先执行,再判断

for循环:先判断,再执行

适用场合:

循环次数确定的情况,通常选用for循环

循环次数不确定的情况,通常选用while或do-while循环

知识点补充:

1、Math.random()获取随机数字

范围是0.0 <= Math.random() < 1.0

int randow = (int)(Math.randow()*10);

重点:Math的API使用

img

2、转义字符:
\ 转义符号    \n 表示在字符串中回车\t Tab效果\r\n IO流需要在文本中换行,需要使用特殊处理\\ 转义字符本身

练习题

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本身不是输入的数据。程序输出读到的数据中的奇数和偶数的个数


文章转载自:即刻就业助手

原文链接:

你可能感兴趣的文章
【MyBatis学习14】MyBatis和Spring整合
查看>>
【MyBatis学习15】MyBatis的逆向工程生成代码
查看>>
Java 中 final、finally 和 finalize 使用总结
查看>>
volatile关键字解析
查看>>
单例模式的八种写法比较
查看>>
比较常见的数据库SQL面试题以及答案
查看>>
MySQL与Oracle的区别
查看>>
关于Oracle数据库优化的几点总结
查看>>
69道Spring面试题和答案
查看>>
40个Java多线程问题总结
查看>>
Oracle数据库面试题
查看>>
java面试中的智力题
查看>>
本地如何连接hbase数据库
查看>>
Maven出错-Missing artifact org.apache.openejb:openejb-core:jar:4.1.0-SNAPSHOT:test
查看>>
dubbo配置文件xml校验报错
查看>>
eclipse生成export生成jar详解
查看>>
oracle 模糊查询忽略大小写
查看>>
Java项目导出可运行的jar文件
查看>>
Java文件夹操作,判断多级路径是否存在,不存在就创建(包括windows和linux下的路径字符分析),兼容Windows和Linux
查看>>
JAVA读取PROPERTIES配置文件
查看>>