今日内容
数据输入
顺序结构
选择结构之if
选择结构之switch

数据输入
1.1 键盘录入的基本使用

问题1:
键盘录入很常用,如果每个程序员自己实现将非常麻烦,所以JDK的开发人员帮助我们实现了获取键盘录入数据的功能,把该功能定义到一个叫做Scanner的类中,同时把这个Scanner类放入java.util包中

问题2:
如何使用jdk中的某个包中的某个类呢?
java中数据类型分为基本类型(四类八种)和引用类型,对于引用类型的使用有固定的三个步骤
然后键盘录入java.util.Scanner类也是一个引用类型,使用也有固定的三个步骤

键盘录入Scanner类的使用:
1.导包(找到要使用的东西) import 引入
格式: import 包名.类名;
Scanner类的导包: import java.util.Scanner;
2.创建对象
格式: 类名 对象名 = new 类名(参数列表…);
解释:
(1)类名: class关键字后面指定的名字
(2)对象名: 就是前面用的变量名,是一个标识符(符合命名规则)
(3)=: 赋值的过程
(4)new: 开辟内存空间创建对象的过程
(5)参数列表: 根据需求指定
创建Scanner类的对象:
Scanner sc = new Scanner(System.in);
注意: ()中的System.in目前是固定写法
3.使用对象:
sc.nextInt(): 获取键盘录入的整数数字(int范围)
sc.nextDouble(): 获取键盘录入的小数数字(double范围)
1.2 键盘录入的理解

1.3 键盘录入的练习
需求:
获取键盘录入的两个整数(int类型)数字,在控制台输出求和的结果。
实现步骤:
1.导包(找到我们要使用的键盘录入Scanner类): import java.util.Scanner;
2.创建键盘录入Scanner类的对象: Scanner sc = new Scanner(System.in);
3.获取键盘录入的两个整数数字,保存到2个int变量a和b中
4.计算int变量a和b的数据之和,保存到int变量sum中
5.打印sum的值

流程控制
2.1 流程控制分类
流程:简单来讲所谓流程就是完成一件事情的多个步骤组合起来就叫做一个流程
注意: 在一个流程程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。
流程控制语句分类
1.顺序结构: 按照代码的书写顺序,从上到下依次执行,一条道走到黑
2.选择结构
(1)if语句
(2)switch语句
3.循环结构:
(1)for循环
(2)while循环
(3)do-while循环
2.2 顺序结构

选择结构-if
英文单词if是: 如果的意思
1.if语句的第一种格式:
if(布尔表达式){
语句体;
}
其它语句;
2.执行流程:
(1)计算布尔表达式的结果,看是true还是false
(2)如果布尔表达式的结果是true,就执行if后面{}中的语句体,接着执行其它语句
(3)如果布尔表达式的结果是false,不执行if后面{}中的语句体,直接执行其它语句
3.注意:
(1)if语句的第一种格式,只适用于有一种情况的场景
(2)if后面()中的表达式,不管多么简单或者多么复杂,结果必须是布尔类型,要么是true,要么是false
(3)if和后面的()之间以及()和{}之间都是没有分号的
(4)if后面的{}中的语句体要么被执行,要么被跳过
(5)if后面的{}中的语句体: 一条/多条语句(根据实际需求确定)
(6)if后面的{}中如果只有一条语句,则可以省略{},但是对于初学者而言,建议保留

3.2 if语句的第一种格式练习

3.3 if语句的第二种格式介绍
英文单词if是: 如果的意思
英文单词else是: 否则的意思
1.if语句的第二种格式:
if(布尔表达式){
语句体1;
} else {
语句体2;
}
2.执行流程:
(1)计算布尔表达式的结果,看是true还是false
(2)如果布尔表达式的结果是true,就执行if后面{}中的语句体1,接着执行其它语句
(3)如果布尔表达式的结果是false,就执行else后面{}中的语句体2,直接执行其它语句
3.注意(不要死记硬背,多看看):
(1)if语句的第二种格式,只适用于有两种情况的场景,是一个二选一的情况
(2)if后面()中的表达式,不管多么简单或者多么复杂,结果必须是布尔类型,要么是true,要么是false
(3)if和后面的()之间以及()和{}之间以及else和前后的{}都是没有分号的
(4)语句体1和语句体2必须只有一个会被执行,属于二选一的情况
(5)if和else后面的{}中的语句体: 一条/多条语句(根据实际需求确定)
(6)if和else后面的{}中如果只有一条语句,则可以省略{},但是对于初学者而言,建议保留

3.4 if语句的第二种格式练习判断大小
需求:
判断a是否大于b,如果是,在控制台输出:a的值大于b,否则,在控制台输出:a的值不大于b
实现步骤:
1.定义2个int变量a和b,并初始化
2.使用if语句第二种格式判断a和b的大小
2.1 如果a>b 输出 “a的值大于b”
2.2 否则,输出 “a的值不大于b”

3.5 if语句的第二种格式练习判断奇偶数
需求:
任意给出一个整数,请用程序实现判断该整数是奇数还是偶数,并在控制台输出该整数是奇数还是偶数。

注意:
判断int变量num中的数字的奇偶性
偶数: num%2 == 0
奇数: num%2 != 0

实现步骤:
1.创建键盘录入Scanner类的对象(1.导包: 根据提示自动导包 2.创建对象)
2.获取键盘录入的一个整数数字,保存到int变量num中
3.使用if语句的第二种判断判断num中的数字的奇偶性,并输出对应的结果

3.6 if语句的第三种格式介绍
英文单词if是: 如果的意思
英文单词else是: 否则的意思
1.if语句的第三种格式:
if(布尔表达式1){
语句体1;
} else if(布尔表达式2){
语句体2;
}

else if(布尔表达式n){
语句体n;
} else {
语句体n+1;
}
其它语句;
2.执行流程:
(1) 首先计算布尔表达式1的值,判断其结果是true还是false
(2) 如果是true就执行语句体1
(3) 如果是false就继续计算布尔表达式2,判断其结果是true还是false
(4) 如果是true就执行语句体2
(5) 如果是false就继续计算布尔表达式…,判断其结果是true还是false
(6) …
(7) 如果没有任何布尔表达式为true,就执行语句体n+1

3.注意:
(1)if语句的第三种格式,只适用于有多种(两种以上)情况的场景,是一个多选一的情况
(2)if后面()中的表达式,不管多么简单或者多么复杂,结果必须是布尔类型,要么是true,要么是false
(3)if和后面的()之间以及()和{}之间以及else和前后的{}都是没有分号的
(4)语句体1到语句体n+1必须只有一个会被执行,属于多选一的情况
(5)if和else后面的{}中的语句体: 一条/多条语句(根据实际需求确定)
(6)if和else后面的{}中如果只有一条语句,则可以省略{},但是对于初学者而言,建议保留
(7)最后一个else后面是没有条件的,是用来兜底的,如果前面的所有条件都不成立,执行最后一个else中的代码
(8)不能直接在else后面写条件,只能在if后面()中写条件
有if就可以写条件,没有if就不能写条件

3.7 if语句的第三种格式练习根据数字输出对应的星期
需求:
键盘录入一个星期数(1,2,…7),输出对应的星期一,星期二,…星期日

演示效果:
输入 1 输出 星期一
输入 2 输出 星期二
输入 3 输出 星期三
输入 4 输出 星期四
输入 5 输出 星期五
输入 6 输出 星期六
输入 7 输出 星期日
输入 其它数字 输出 数字有误

实现步骤:
1.创建键盘录入Scanner类的对象
2.获取键盘录入的代表星期数的1到7之间的整数数字,保存到int变量week中
3.因为week中的数字有7+1种情况,使用if语句第三种格式判断week的值,输出对应的星期几

选择结构-switch
4.1 switch语句格式和介绍
1.switch语句的格式:
switch(表达式) {
case 常量值1:
语句体1;
break;
case 常量值2:
语句体2;
break;

case 常量值n:
语句体n;
break;
default:
语句体n+1;
break;
}
其它语句;

2.执行流程:
(1)首先计算出表达式的值
(2)其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结
束。
(3)最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。

3.注意事项:
(1)switch语句()中表达式的类型: byte/short/char/int String/枚举 —最重要的—
(2)case后面必须写常量,而且不能重复,常量的类型要和表达式的结果类型匹配
(3)switch和后面的(),以及()和{}之间都没有分号,case后面常量值的后面是冒号不是分号
(4)break是用来结束switch语句的,一旦遇到break,直接结束switch语句,继续执行switch后面的其它语句
(5)default是用来兜底的,如果所有的case的常量值和表达式的结果都不相同,直接执行default中的代码
(6)如果每个case和default后面都有break,那么case和default的顺序可以任意调整,不影响结果
(7)如果default放在最后的话,那么可以省略default中的break
(8)语句体: 一条/多条语句(根据题目需求确定)

4.2 switch练习根据月份输出对应的季节
需求:
一年有12个月,分属于春夏秋冬4个季节,
键盘录入一个月份,请用程序实现判断该月份属于哪个季节,并输出。

演示效果
输入: 1、2、12 输出:冬季
输入: 3、4、5 输出:春季
输入: 6、7、8 输出:夏季
输入: 9、10、11 输出:秋季
输入: 其它数字 输出:数字有误

实现步骤(本案例使用switch):
1.创建键盘录入Scanner类对象
2.获取键盘录入的代表月份的1到12之间的整数数字,保存到int变量month中
3.使用switch语句,根据month中的不同的月份数字,输出对应的季节
public class Demo02SwitchMonth {
public static void main(String[] args) {
//1.创建键盘录入Scanner类对象
Scanner sc = new Scanner(System.in);

    //2.获取键盘录入的代表月份的1到12之间的整数数字,保存到int变量month中System.out.println("请输入代表月份的1到12之间的整数数字: ");int month = sc.nextInt();//3.使用switch语句,根据month中的不同的月份数字,输出对应的季节switch (month) {case 1:System.out.println("冬季");break;case 2:System.out.println("冬季");break;case 12:System.out.println("冬季");break;case 3:System.out.println("春季");break;case 4:System.out.println("春季");break;case 5:System.out.println("春季");break;case 6:System.out.println("夏季");break;case 7:System.out.println("夏季");break;case 8:System.out.println("夏季");break;case 9:System.out.println("秋季");break;case 10:System.out.println("秋季");break;case 11:System.out.println("秋季");break;default:System.out.println("您输入的月份不存在...");break;}System.out.println("其它语句...");
}

}
4.3 使用case穿透优化根据月份输出对应的季节的案例
使用case穿透优化根据月份输出对应的季节的案例
发现问题:
前面Demo02SwitchMonth.java文件中出现了大量的重复的代码
1,2,12代码重复,3,4,5代码重复,6,7,8代码重复,9,10,11代码重复
每三个case中的代码都是相同的
解决方案使用case穿透:
如果多个连续的case,每个case后面都有相同的语句体和break,那么只需要保留最后一个case以及内部的语句体和break,前面的若干个case,不需要写语句体和break了,只保留case就可以了

case穿透执行步骤:
在switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会在判断下一个case的值,直接向后运行,直到遇到break,或者整体switch结束。
总结:
(1)计算switch后面表达式的结果
(2)找到case入口: 常量值和表达式结果相同的那个case,执行这个case中的代码
(3)如果当前case中没有break,直接穿透进入下一个case中的代码来执行
(4)…
(5)直到遇到break,或者整体switch结束。

循环结构
5.1 循环概述
循环的概念: 重复性的执行某些固定的功能,当条件不成立时,结束循环
说白了: 条件成立执行操作,条件不成立停止操作
5.2 循环组成
1.循环的组成(手写100遍HelloWorld案例):
(1)【初始化表达式1】准备工作:笔墨伺候,最优先唯一执行一次的操作
(2)【循环条件2】条件判断:每次书写前,判断一下,要不要写
(3)【循环体3】循环所要进行的操作:手写一个HelloWorld案例
(4)【步进表达式4】扫尾的工作:每写一次HelloWorld,计数(+1)

2.执行流程:
1,2(true),3,4 --> 2(true),3,4 --> … --> 2(false),结束循环

3.循环的分类:
(1)for循环
(2)while循环
(3)do-while循环
循环语句1–for
**6.1 for循环语句介绍
1.for循环格式:
for (初始化表达式1;布尔表达式2;步进表达式4) {
循环体3;
}
其它语句;

2.执行流程:
1,2(循环条件:true),3,4 --> 2(循环条件:true),3,4 --> … --> 直到2(循环条件:false)为false时,结束for循环,执行后面的其它语句
3.注意:
(1)for和(),以及()和{}之间是没有分号的
(2)()中有3个表达式,之间用2个分号(缺一不可)隔开,第三个表达式后面没有分号
(3)第二个表达式一定是布尔类型,结果只能是true和false
(4)循环体就是一条/多条语句

4.总结
对于求和,计数的需求,解决方案:
(1)循环的前面定义求和/计数变量
(2)循环的内部完成求和/计数功能的实现
(3)循环的后面打印求和/计数变量的结果数据
6.2 for循环练习1

6.3 for循环练习2
需求:
在控制台输出所有的“水仙花数”及总个数

解释:什么是水仙花数?
水仙花数,指的是一个三位数,个位、十位、百位的数字立方和等于原数
例如 153 333 + 555 + 111 = 27 + 125 + 1 = 153

实现步骤:
0.定义int变量count,初始值0,用来统计水仙花数字的个数
1.使用for循环获取所有的三位数字,循环变量int类型num
1.1 计算num中数字的个位,十位,百位,分别保存到int变量ge,shi,bai中
1.2 计算个位,十位,百位的立方和,保存到int变量sum中
1.3 判断如果num等于sum,说明是水仙花数字
1.4 计数器count的值增加1
1.5 打印num中的水仙花数字
2.for循环结束,打印count的值

循环语句2–while
7.1 while循环语句介绍
1.while循环格式:
初始化表达式1;
while(布尔表达式2){
循环体3;
步进表达式4;
}
其它语句;

2.执行流程:
1,2(循环条件:true),3,4–>2(循环条件:true),3,4–> … -->直到布尔表达式2(循环条件: false) 的结果为false,结束while循环,执行后面的其它语句

3.注意:
(1)while和(),以及()和{}之间是没有分号的
(2)()中的表达式必须是布尔类型
(3)循环体就是一条/多条语句

7.2 while循环练习1
需求:
在控制台输出5次HelloWorld

7.3 while循环练习2
需求:
世界最高山峰是珠穆朗玛峰(8844.43米=8844430毫米),假如我有一张足够大的纸,它的厚度是0.1毫米。
请问,我折叠多少次,可以折成珠穆朗玛峰的高度?
折纸(折叠后的厚度是原有厚度的2倍,而不是平方的关系):
原来: 0.1 paper
第一次: 0.12: 0.2 paper = paper * 2
第二次: 0.2
2: 0.4
第三次: 0.42: 0.8
第四次: 0.8
2: 1.6

实现步骤:
1.定义int变量count,初始值0,用来统计折叠纸张的次数
2.定义2个double变量paper和zf,分别代表珠峰的高度和纸张的厚度,根据题目需求进行初始化
3.使用while循环统计折叠纸张的次数
3.1 初始化表达式: 步骤1和2中定义的变量
3.2 循环条件: 纸张的总厚度 小于 珠峰的高度 paper<zf
3.3 循环体: 计数器的值增加1
3.4 步进表达式: 折叠一次纸张 paper = paper * 2
4.while循环结束后,打印count的值

循环语句3–do-while
8.1 do-while循环语句介绍
1.do-while循环格式:
初始化表达式1;
do {
循环体3;
步进表达式4;
} while (布尔表达式2);
其它语句;

2.执行流程:
1,3,4 --> 2(循环条件:true),3,4 --> 2(循环条件:true),3,4 -->
直到布尔表达式2(循环条件:false)的结果为false,结束do-while循环,执行后面的其它语句

3.注意:
(1)do和{},{}和while,以及while后()之间都是没有分号的
(2)()中的表达式必须是布尔类型,而且()后面必须写一个分号,不写是语法格式错误
(3)循环体就是一条/多条语句
(4)代码从上到下依次执行,它是先执行循环体,再进行条件判断,所以对于do-while而言,循环体至少执行一次

do-while循环练习

JAVA 学习第三天 Scanner顺序\选择\循环结构!相关推荐

  1. java学习第6天,今天是循环结构

    1.while循环结构 while ( 循环条件 ) {                 循环操作 } 练习(1) 计算100以内的偶数之和 package cn.loyer; /*** @autho ...

  2. java学习第三天笔记-流程控制语句-分支结构66-if的第二种格式

  3. Java学习 第三章 数组(三)排序算法

    ** Java学习 第三章 数组(三)排序算法 ** 主要内容:排序算法.排序算法横向比较.Arrays工具类的使用.数组常见异常 1.数组中涉及到的常见算法:排序算法 1.1 排序算法分类:内部排序 ...

  4. invader的java学习第三天基础篇

    invader的java学习第三天基础篇 一.整数的取值范围表 类型名称 数据类型 所占空间 表数范围 字节型 byte 1字节 -128-127 短整型 short 2字节 +-3w(-2^15-2 ...

  5. java学习笔记(三):前端miniUI控件库入门

    java学习笔记(三):前端miniUI控件库入门 最近在一家公司实习学习,一上来就需要学习了解相关的前端内容--miniUI.而这个内容自己本身并没有了解学习过,上手也是遇到了不少的问题,于是想把自 ...

  6. 人生三部曲:顺序,选择,循环

    人生三部曲:顺序,选择,循环 人生有多么复杂?计算机可以用0和1来代表一切,那么人生也逃不出这个圈套. 加上人生的时间性和空间拓展,好比一个程序在运行. 这个程序开始是顺序执行:从生到死.然后面临一个 ...

  7. 国二C语言文字选择程序选择,全国计算机等级考试二级C语言题型总结(二)——选择循环结构程序设计部分.doc...

    全国计算机等级考试二级C语言题型总结(二)--选择循环结构程序设计部分 C语言第二部分上机题型总结 选择结构部分: if结构题型总结 (案例1) 企业发放的奖金根据利润提成.利润(I)低于或等于10万 ...

  8. java循环变量_Java初学——Java入门变量 常量选择循环结构

    一.初识java 1.jdk的介绍 下载安装jdk 安装后会存在默认的安装路径 bin 目录:存放编译,运行 Java 程序的可执行文件 lib 目录:存放 Java 的类库文件 jre 目录:存放 ...

  9. java第五章循环结构总结_Java理论学习三分钟-流程控制之循环结构(3)

    一.循环结构概念引入 在生活中会出现这样的编写程序,计算1+2+3+--+100的值 int a1=1; int a2=2; int a3=3; -- int a100=100; a100=a1+a2 ...

  10. Java 北大青鸟 第一学期 第六章 循环结构(二) 上级练习+课后作业

    第一学期 第六章 循环结构(二) 实例1 实例3 输入任意一个整数,根据这个值输入值为6 示例4 设计客户的年龄层次 实例6 实例7 循环录入会员信息 验证用户信息 鸡兔同笼 男人女人小孩 总结 源码 ...

最新文章

  1. Thrust快速入门教程(二)——Vector的使用
  2. 为什么vs数据库中文显示问号_在vs2008中注册页面中的中文字符写入数据库的后中文会变成问号...
  3. Python---json模块
  4. Jackson 注解 -- 忽略空字段
  5. 微信读书vscode插件_跟我一起读源码 – 如何阅读开源代码
  6. flink下载以及兼容性问题
  7. C++预处理指令#define,#if,#endif等
  8. 基于JAVA+Servlet+JSP+MYSQL的在线答疑系统
  9. 力扣--260只出现一次的数字I-III
  10. zedboard连接pmod oledrgb
  11. atlas对webpart的增强
  12. PHP网站安全日志系统开发与部署
  13. 服务器webpack构建性能,webpack构建和性能优化探索
  14. [UESTC SC T3] 蛋糕
  15. 排错-通过LLDP信息查找环路(以H3C S5100为例)
  16. c++可视化性能测试
  17. 推荐系统多场景联合建模经验
  18. 微软拼音配置小鹤双拼
  19. 基于PIE-Engine的新疆地区棉花种植面积提取
  20. 自动关闭MessageBox

热门文章

  1. 摄影知识——光圈和快门的组合
  2. 计算机专业职称入深户,深圳市人才引进入深户新政策
  3. win10电脑装USB CAN 1报错代码39
  4. QT如何给exe添加图标
  5. 苹果cms大橙子完美版源码,影视模板
  6. kubernetes 26、liveness和readiness的原理与使用
  7. P8700和T9600对比测试
  8. Excel将一个表格的格式复制到其他表格,不用格式刷
  9. 两台电脑间使用网线连接实现共享
  10. java 目录遍历漏洞_Jetty服务器跨站脚本和目录遍历漏洞