Day04

一、Java的执行语句

1.顺序语句

含义:方法中的代码从往下执行

2.分支语句

含义:根据不同的条件,指定不同的功能
2.1 if分支
2.2 switch分支

3.循环语句

含义:条件成立,就重复性的执行某个功能
3.1 for循环
3.2 while循环
3.3 do-while循环

4.特殊的流程控制语句

4.1 break
4.2 continue
4.3 return
4.4 lable

二、简单的if分支

1.语法结构

if(表达式){
…代码块…
}

2.理解

表达式的结果必须是boolean类型
true - 执行代码块
false - 跳出if分支

3.做实验

if(false){System.out.println("...代码块...");
}
System.out.println("if分支以外的代码");

三、复杂的if分支

1.案例一

人类的健康值在20-25的数值内为健康
健康值算法为:体重(Kg) / 身高(米)的平方)

//1.输入体重和身高
Scanner scan = new Scanner(System.in);
System.out.println("请输入体重(Kg):");
double wigth = scan.nextDouble();
System.out.println("请输入身高(M):");
double heigth = scan.nextDouble();//2.计算健康值
double health =  wigth/(heigth*heigth);//3.判断
if(health>20 && health<25){System.out.println("小护士说:\"健康,继续保持\"");
}

2.案例二

小西满里惠Java成绩大于98分,而且音乐成绩大于80分,老师奖励他;
或者Java成绩等于100分,音乐成绩大于70分,老师也可以奖励他。

Scanner scan = new Scanner(System.in);
System.out.println("请输入Java成绩:");
double javaScore = scan.nextDouble();
System.out.println("请输入音乐成绩:");
double musicScore = scan.nextDouble();if((javaScore>98&&musicScore>80) || (javaScore==100&&musicScore>70)){System.out.println("奖励小西满里惠 仙女棒一根");
}

3.总结

  1. if可以判断区间
  2. if可以判断复杂的条件
  3. 变量的驼峰命名法:除了第一个单词,其余的单词首字母大写

四、if…else…

1.语法结构

if(表达式){
…代码块…
}else{
…else代码块…
}

2.理解

表达式的结果必须是boolean
true - 执行代码块
false- 执行else代码块

3.做实验

if(false){System.out.println("...代码块...");
}else{System.out.println("...else代码块...");
}
System.out.println("if分支以外的代码");

4.案例

如果水菜丽Java考试成绩大于98分,
老师就奖励他一个劳斯莱斯,否则老师就罚他进行编码

Scanner scan = new Scanner(System.in);
System.out.println("请输入Java成绩:");
double score = scan.nextDouble();if(score > 98){System.out.println("奖励水菜丽劳斯莱斯玩具赛车一辆");
}else{System.out.println("何老师给水菜丽通宵补课~~~");
}

5.总结

二选一的需求时考虑使用if…else…

五、if…else if…

1.语法结构

if(表达式1){...代码块1...
}else if(表达式2){...代码块2...
}else if(表达式n){...代码块n...
}else{...else代码块...
}

2.理解

表达式的结果必须是boolean
从上往下依次判断表达式,哪个表达式先为true,就执行对应的代码块
所有的表达式都不为true,就执行else代码块
注意:else{}根据需求可写可不写

3.做实验

if(false){System.out.println("...代码块1...");
}else if(false){System.out.println("...代码块2...");
}else if(false){System.out.println("...代码块n...");
}else{System.out.println("...else代码块...");
}
System.out.println("if分支以外的代码");

4.案例一

人类的健康值在
15-20的数值内为偏瘦
20-25的数值内为健康
25-30的数值内为偏胖
(健康值算法为:体重(Kg) / 身高(米)的平方)

//输入体重、身高
Scanner scan = new Scanner(System.in);
System.out.println("请输入体重(Kg):");
double wigth = scan.nextDouble();
System.out.println("请输入身高(M):");
double heigth = scan.nextDouble();//计算健康值
double health =  wigth/(heigth*heigth);//判断
if(health > 15 && health<=20){System.out.println("小护士说:\"偏瘦,多喝啤酒、多吃垃圾食品、多熬夜\"");
}else if(health > 20 && health <= 25){System.out.println("小护士说:\"健康,继续保持\"");
}else if(health > 25 && health <= 30 ){System.out.println("小护士说:\"偏胖,多做运动,嘿嘿嘿~~~\"");
}else{System.out.println("小护士说:\"健康值异常,请到医院详细检查\"");
}

5.案例二

通过键盘录入学生成绩
如果在90-100之间,则打印“A”,
否则如果在80-90之间,则打印“B”,
否则如果在70-80之间,则打印“C”
否则如果在60-70之间,则打印“D”
否则如果在0 -60之间,则打印“E”
否则打印“成绩异常”

Scanner scan = new Scanner(System.in);
System.out.println("请输入成绩:");
double score = scan.nextDouble();if(score >= 90 && score <= 100){System.out.println("A");
}else if(score >= 80 && score < 90){System.out.println("B");
}else if(score >= 70 && score < 80){System.out.println("C");
}else if(score >= 60 && score < 70){System.out.println("D");
}else if(score >= 0 && score < 60){System.out.println("E");
}else{System.out.println("成绩异常");
}

6.总结

多选一的需求时考虑使用if…else if…

六、嵌套if分支

1.案例

千锋举行运动会,百米赛跑跑入16秒内的学生有资格进决赛,

根据性别分别进入男子组和女子组。

public static void main(String[] args){Scanner scan = new Scanner(System.in);System.out.println("请输入成绩:");double score = scan.nextDouble();if(score > 0 && score < 16){System.out.println("请输入性别:");String sex = scan.next();//输入字符串if(sex.equals("男")){//判断sex和"男"这两个字符串内容是否相等System.out.println("恭喜进入到男子组决赛");}else if(sex.equals("女")){//判断sex和"女"这两个字符串内容是否相等System.out.println("恭喜进入到女子组决赛");}else{System.out.println("性别异常");}}else if(score >= 16){System.out.println("重在参与");}else{System.out.println("成绩异常");}

2.总结if语法的区别

if(){}:最简单的if
if…else…:二选一
if…else if…:多选一
if可以无限层嵌套

3.if应用场景

可以判断单个值
可以判断区间
可以判断复杂的条件

七、switch分支

1.语法结构

switch(表达式){
case 值1:
…代码块1…
break;
case 值2:
…代码块2…
break;
case 值n:
…代码块n…
break;
default:
…default代码块…
break;
}

2.理解

表达式的结果可以是:byte、short、int、枚举(JDK1.5)、String(JDK1.7)
分别和值1、值2、值n比较,哪个相等,就执行对应的代码块
break:跳出switch分支语句
default代码块类似于else{},是其余其他情况的意思,根据需求可写可不写

3.做实验

switch(5000){case 10:System.out.println("10");break;case 50:System.out.println("50");break;case 100:System.out.println("100");break;default:System.out.println("...default代码块...");break;
}
System.out.println("switch分支以外的代码");

4.案例

明日花绮罗参加计算机编程大赛
如果获得第一名,将参加千锋组织的1个月马尔代夫旅游
如果获得第二名,将奖励苹果Pro笔记本电脑一部
如果获得第三名,将奖励移动硬盘一个
否则,何老师晚上给明日花绮罗通宵补课

public static void main(String[] args){Scanner scan = new Scanner(System.in);System.out.println("请输入比赛名次:");String str = scan.next();switch(str){case "第一名":System.out.println("和何老师一起参加千锋组织的1个月马尔代夫旅游");break;case "第二名":System.out.println("奖励苹果Pro笔记本电脑一部");break;case "第三名":System.out.println("奖励移动硬盘一个");break;default:System.out.println("何老师晚上给明日花绮罗通宵补课");break;}}

八、深入switch分支

1.面试题

case的值可以相同吗?不可以
default可以省略吗?可以
break可以省略吗?可以
default的位置一定要在最后吗?不一定
case后面值的类型可以不一样吗?可以不一样,但是必须兼容
表达式值的类型可以是什么?byte、short、int、枚举(JDK1.5)、String(JDK1.7)

2.底层理解

switch表达式的类型为什么只有byte、short、int、枚举(JDK1.5)、String(JDK1.7)?
switch表达式的结果在底层只接受int
byte自动转型成int
short自动转型成int
枚举的对象系统会给他赋int
String是获取的ASCII码

public static void main(String[] args){switch(97){case 10:System.out.println("10");break;case 50:System.out.println("50");break;case 'a':System.out.println("97");break;default:System.out.println("...default代码块...");break;}System.out.println("switch分支以外的代码");
}

3.案例

需求:输入年和月,输出当月的天数
闰年:被4整除且不能被100整除 或者 被400整除的年份

//输入年和月
Scanner scan = new Scanner(System.in);
System.out.println("请输入年:");
int year = scan.nextInt();
System.out.println("请输入月:");
int month = scan.nextInt();int day = 0;//当月的天数//判断
switch(month){case 1:case 3:case 5:case 7:case 8:case 10:case 12:day = 31;break;case 4:case 6:case 9:case 11:day = 30;break;case 2://判断是否是闰年if(year%4==0&&year%100!=0 || year%400==0){//闰年day = 29;}else{//平年day = 28;}break;
}//输出
System.out.println(year+"年"+month+"月的天数为:" + day + "天");

4.if vs switch语法结构的区别

if的表达式:boolean
switch的表达式:byte、short、int、枚举(JDK1.5)、String(JDK1.7)

5.if vs switch应用场景的区别

if:判断单个值、区间、复杂的条件
switch:判断单个值

九、for循环

1.含义

条件成立就重复执行

2.好处

减少了代码的冗余(减少重复性的代码)

3.语法结构

for(表达式1;表达式2;表达式3){
…代码块…
}

4.理解

表达式1:初始化变量
表达式2:判断条件
表达式3:更新变量

5.执行流程

  1. 初始化变量
  2. 判断条件:判断条件的结果必须是boolean
    2.1 true - 执行代码块,并更新变量,重复第2个步骤
    2.2 false- 跳出整个循环语句

6.做实验

输出去5遍"用良心做教育"

for(int i = 1;i<=5;i++){System.out.println("用良心做教育");
}

7.for循环变形记

循环中声明变量的作用域只能在循环内
在循环中i++和++i没有区别

int i = 1;
for(;i<=5;){System.out.println("用良心做教育");//i++;++i;
}
System.out.println(i);

8.理解案例1

输出1-9的数字

for(int i = 1;i<=9;i++){System.out.println(i);
}

9.理解案例2

输出1~9数字中的奇数

//解决方案1
for(int i = 1;i<10;i+=2){System.out.println(i);
}
//解决方案2
for(int i = 1;i<10;i++){if(i%2!=0){System.out.println(i);}
}

10.理解案例3

输出9~1的数字

for(int i = 9;i>0;i--){System.out.println(i);
}

11.总结 - 理解案例

i可以从1开始也可以从0开始,更新变量可以递增也可以递减

12.案例1

循环录入5次int类型的数字,输出总和

Scanner scan = new Scanner(System.in);
int sum = 0;//总和
for(int i = 1;i<=5;i++){System.out.println("请输入第" + i + "个数字:");int num = scan.nextInt();sum += num;//累加
}
System.out.println("总和为:" + sum);

13.案例2

循环录入麻生希同学的5门课成绩,计算平均分

Scanner scan = new Scanner(System.in);
double sum = 0;//总成绩
for(int i = 1;i<=5;i++){System.out.println("请输入第" + i + "门成绩:");double score = scan.nextDouble();sum += score;//累加
}
System.out.println("平均分为:" + (sum/5));

14.案例3

循环录入5次int类型的数字,输出最大值

Scanner scan = new Scanner(System.in);System.out.println("请输入第1个数字:");
int max = scan.nextInt();//假设第一个输入的数字为最大值for(int i = 2;i<=5;i++){System.out.println("请输入第" + i + "个数字:");int num = scan.nextInt();if(max < num){max = num;}
}System.out.println("最大值为:" + max);

零基础学javaDay04相关推荐

  1. [零基础学JAVA]Java SE实战开发-37.MIS信息管理系统实战开发[JDBC](1)

    MIS信息管理系统实战开发之使用MySQL实现保存 开发背景 ID.姓名.年龄为公共信息,而学生有成绩,工人有工资 定义一个抽象类Person(ID.姓名.年龄),学生是其子类,有成绩,工人是其子类有 ...

  2. 零基础学java培训怎么选择学校

    java技术在互联网行业的快速发展,引起了很多人的关注,大家都想通过学习java技术来加入到这个行业,那么零基础学java培训怎么选择学校呢?如今市面上的java培训机构这么多,下面小编就来为大家详细 ...

  3. 零基础学Java需要做哪些准备

    想要成为一名合格的java工程师,那么好好学习java技术是非常重要的,对于零基础同学们来说,大家比较关注的就是"零基础学Java需要做哪些准备"这个问题,下面小编就来为大家做下详 ...

  4. 零基础学Java大数据难不难

    java大数据如今在企业中用到的次数是非常多的,很多人都比较看好java技术,那么零基础学Java大数据难不难?想要学习java技术说难不难,说简单也不是很简单,来看看下面的详细介绍就知道了. 零基础 ...

  5. 零基础学软件测试去哪家培训机构好

    移动互联网的时代,几乎每个人都是机不离手,手机软件的应用频率越来越高,软件测试这个岗位的发展前景更是非常可观,很多人都开始学习软测技术,想要知道零基础学软件测试去哪家培训机构好?来看看下面的详细介绍. ...

  6. 零基础学Java程序有什么好的建议

    ​ java技术的快速发展,引起了很多人的关注,尤其是一些零基础人群,都想通过学习java技术来改善自己的职业,那么零基础学Java程序有什么好的建议呢?来看看下面的详细介绍. ​ 零基础学Java程 ...

  7. 女生零基础学软件测试难不难

    软件测试属于一门IT技术编程语言,很多人都觉得IT技术都是男性比较多,按照目前的行业数据来看,确实是男性居多,但最近几年,女性程序猿也越来越多,其中就有软件测试这个岗位,下面具体来看看女生零基础学软件 ...

  8. 零基础学python培训需要学习多久?

    Python是一种入门比较简单的编程语言,但是如果是零基础学员,学习起来还是需要时间的,那么零基础学python培训需要学习多久呢?我们来看看小编的详细介绍吧. 零基础学python培训需要学习多久? ...

  9. 【组队学习】【34期】零基础学python编程思维

    零基础学python编程思维 航路开辟者:邓林权 领航员:沈一 航海士:覃嘉俊.马子阳.左凯文 基本信息 开源内容:https://linklearner.com/datawhale-homepage ...

最新文章

  1. Github for windows
  2. 微服务架构介绍和RPC框架对比
  3. Java日志框架-Logback手册中文版以及官方配置文档教程
  4. c++ string c_str() 和data()区别
  5. Linux QQ 2.0.0 Beta2 发布
  6. 使用javadoc命令制作帮助文档(API)
  7. atitit. java跟php的比较..为什么大企业喜欢java 而不是php
  8. (转载)oracle10g在win10上的安装
  9. MSN 通信协议学习笔记(转)
  10. 卡尔曼滤波算法及其应用
  11. VC模拟鼠标的两种方式(SendMessage、mouse_event)
  12. 2019年新一年目标
  13. DeFi 可以从金融危机中学到三件事
  14. P1164 小A点菜(DP动态规划,洛谷,java)
  15. Linux网络之DNS域名解析概述
  16. 如何用小学生计算机来玩游戏,小学生一年级第一次玩电脑作文
  17. oracle 数据分列,oracle怎么按照范围分列!求高手帮忙.
  18. 发现新的恶意 Torii IoT 僵尸网络
  19. 一带一红网红基地推出O2O网红直播过年模式
  20. 电脑qq怎么设置远程桌面连接到服务器,QQ远程协助在哪个位置 qq远程协助如何使用...

热门文章

  1. 深度linux玩大话西游2,大话西游2大神用版单盘点服务器活跃度 你的服务器是否在列...
  2. indesign 显示黑屏_indesign技巧
  3. Java获取三个数字中的最大值[5种解决方法]
  4. 【量化笔记】RSI相对强弱指标
  5. 毕业设计 大数据电商用户行为分析 -python 大数据
  6. js小练习--模拟满天星
  7. 在微型计算机中 svga的含义是,《计算机基础》1.在微型计算机中,SVGA的含义是( )...
  8. 【PS手绘】学习笔记二
  9. 哔哩哔哩会员免费领取
  10. 整人脚本-会说话的windows脚本