零基础学javaDay04
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.总结
- if可以判断区间
- if可以判断复杂的条件
- 变量的驼峰命名法:除了第一个单词,其余的单词首字母大写
四、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.执行流程
- 初始化变量
- 判断条件:判断条件的结果必须是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相关推荐
- [零基础学JAVA]Java SE实战开发-37.MIS信息管理系统实战开发[JDBC](1)
MIS信息管理系统实战开发之使用MySQL实现保存 开发背景 ID.姓名.年龄为公共信息,而学生有成绩,工人有工资 定义一个抽象类Person(ID.姓名.年龄),学生是其子类,有成绩,工人是其子类有 ...
- 零基础学java培训怎么选择学校
java技术在互联网行业的快速发展,引起了很多人的关注,大家都想通过学习java技术来加入到这个行业,那么零基础学java培训怎么选择学校呢?如今市面上的java培训机构这么多,下面小编就来为大家详细 ...
- 零基础学Java需要做哪些准备
想要成为一名合格的java工程师,那么好好学习java技术是非常重要的,对于零基础同学们来说,大家比较关注的就是"零基础学Java需要做哪些准备"这个问题,下面小编就来为大家做下详 ...
- 零基础学Java大数据难不难
java大数据如今在企业中用到的次数是非常多的,很多人都比较看好java技术,那么零基础学Java大数据难不难?想要学习java技术说难不难,说简单也不是很简单,来看看下面的详细介绍就知道了. 零基础 ...
- 零基础学软件测试去哪家培训机构好
移动互联网的时代,几乎每个人都是机不离手,手机软件的应用频率越来越高,软件测试这个岗位的发展前景更是非常可观,很多人都开始学习软测技术,想要知道零基础学软件测试去哪家培训机构好?来看看下面的详细介绍. ...
- 零基础学Java程序有什么好的建议
java技术的快速发展,引起了很多人的关注,尤其是一些零基础人群,都想通过学习java技术来改善自己的职业,那么零基础学Java程序有什么好的建议呢?来看看下面的详细介绍. 零基础学Java程 ...
- 女生零基础学软件测试难不难
软件测试属于一门IT技术编程语言,很多人都觉得IT技术都是男性比较多,按照目前的行业数据来看,确实是男性居多,但最近几年,女性程序猿也越来越多,其中就有软件测试这个岗位,下面具体来看看女生零基础学软件 ...
- 零基础学python培训需要学习多久?
Python是一种入门比较简单的编程语言,但是如果是零基础学员,学习起来还是需要时间的,那么零基础学python培训需要学习多久呢?我们来看看小编的详细介绍吧. 零基础学python培训需要学习多久? ...
- 【组队学习】【34期】零基础学python编程思维
零基础学python编程思维 航路开辟者:邓林权 领航员:沈一 航海士:覃嘉俊.马子阳.左凯文 基本信息 开源内容:https://linklearner.com/datawhale-homepage ...
最新文章
- Github for windows
- 微服务架构介绍和RPC框架对比
- Java日志框架-Logback手册中文版以及官方配置文档教程
- c++ string c_str() 和data()区别
- Linux QQ 2.0.0 Beta2 发布
- 使用javadoc命令制作帮助文档(API)
- atitit. java跟php的比较..为什么大企业喜欢java 而不是php
- (转载)oracle10g在win10上的安装
- MSN 通信协议学习笔记(转)
- 卡尔曼滤波算法及其应用
- VC模拟鼠标的两种方式(SendMessage、mouse_event)
- 2019年新一年目标
- DeFi 可以从金融危机中学到三件事
- P1164 小A点菜(DP动态规划,洛谷,java)
- Linux网络之DNS域名解析概述
- 如何用小学生计算机来玩游戏,小学生一年级第一次玩电脑作文
- oracle 数据分列,oracle怎么按照范围分列!求高手帮忙.
- 发现新的恶意 Torii IoT 僵尸网络
- 一带一红网红基地推出O2O网红直播过年模式
- 电脑qq怎么设置远程桌面连接到服务器,QQ远程协助在哪个位置 qq远程协助如何使用...
热门文章
- 深度linux玩大话西游2,大话西游2大神用版单盘点服务器活跃度 你的服务器是否在列...
- indesign 显示黑屏_indesign技巧
- Java获取三个数字中的最大值[5种解决方法]
- 【量化笔记】RSI相对强弱指标
- 毕业设计 大数据电商用户行为分析 -python 大数据
- js小练习--模拟满天星
- 在微型计算机中 svga的含义是,《计算机基础》1.在微型计算机中,SVGA的含义是( )...
- 【PS手绘】学习笔记二
- 哔哩哔哩会员免费领取
- 整人脚本-会说话的windows脚本