2021-11-16----韩顺平Java入门第十天
韩顺平Java入门第十天
1.swith分支结构
基本语法
流程图
快速入门
//请编写一个程序,该程序可以接收一个字符,
//比如:a,b,c,d,e,f,g a 表示星期一,b 表示星期二 …
import java.util.Scanner; public class Switch01 { //编写一个 main 方法 public static void main(String[] args) { /*案例:Switch01.java 请编写一个程序,该程序可以接收一个字符,比如:a,b,c,d,e,f,g a 表示星期一,b 表示星期二 … 根据用户的输入显示相应的信息.要求使用 switch 语句完成 思路分析 1. 接收一个字符 , 创建 Scanner 对象 2. 使用 switch 来完成匹配,并输出对应信息 代码*/ Scanner myScanner = new Scanner(System.in); System.out.println("请输入一个字符(a-g)"); char c1 = myScanner.next().charAt(0);// //在 java 中,只要是有值返回,就是一个表达式 switch(c1) { case 'a' :System.out.println("今天星期一,猴子穿新衣"); break; case 'b' : System.out.println("今天星期二,猴子当小二"); break; case 'c' : System.out.println("今天星期三,猴子爬雪山.."); break; //..... default: System.out.println("你输入的字符不正确,没有匹配的"); }System.out.println("退出了 switch ,继续执行程序"); }
}
细节讨论
课堂练习题:
//1) 使用 switch 把小写类型的 char 型转为大写(键盘输入)。只转换 a, b, c, d, e. 其它的输出 "other"。
//2) 对学生成绩大于 60 分的,输出"合格"。低于 60 分的,输出"不合格"。
// (注:输入的成绩不能大于 100), 提示 成绩/60
//3) 根据用于指定月份,打印该月份所属的季节。
// 3,4,5 春季 6,7,8 夏季 9,10,11 秋季 12, 1, 2 冬季 [课堂练习, 提示 使 用穿透 ]
//
import java.util.Scanner;
public class SwitchExercise { //编写一个 main 方法 public static void main(String[] args) { //1)Scanner myScanner = new Scanner(System.in); System.out.println("请输入一个字符(a-e)"); char c1 = myScanner.next().charAt(0);// //在 java 中,只要是有值返回,就是一个表达式 switch(c1) { case 'a' :System.out.println("A"); break; case 'b' : System.out.println("B"); break; case 'c' : System.out.println("C"); break; case 'd' : System.out.println("D"); break;case 'e' : System.out.println("E"); break;//..... default: System.out.println("other"); }System.out.println("退出了 switch1 ,继续执行程序"); //2)//对学生成绩大于 60 分的,输出"合格"。低于 60 分的, //输出"不合格"。(注:输入的成绩不能大于 100), 提示 成绩/60 //思路分析 //1. 这道题,可以使用 分支来完成, 但是要求使用 switch //2. 这里我们需要进行一个转换, 编程思路 : // 如果成绩在 [60,100] , (int)(成绩/60) = 1 // 如果成绩在 [0,60) , (int)(成绩/60) = 0//代码实现 System.out.println("请输入成绩");double score = myScanner.nextDouble(); //使用 if-else 保证输入的成绩有有效的 0-100 //看了当老师的分析和代码演示后,自己一定要独立完成(不看老韩代码,也能写) if( score >= 0 && score <= 100) { switch ((int)(score / 60)) { case 0 : System.out.println("不合格"); break; case 1 : System.out.println("合格"); break; // default : // System.out.println("输入有误");} System.out.println("退出了 switch2 ,继续执行程序"); } else { System.out.println("输入的成绩在 0-100"); }//3)System.out.println("请输入月份(1-12)"); int month = myScanner.nextInt(); switch(month) { case 3 :case 4 : case 5 : System.out.println(month + "月份是春季"); break; case 6 : case 7: case 8: System.out.println(month + "月份是夏季"); break; case 9: case 10: case 11: System.out.println(month + "月份是秋季"); break; case 12: case 1: case 2: System.out.println(month + "月份是冬季"); break; default: System.out.println("您输入的月份有误"); }System.out.println("退出了 switch3 ,继续执行程序");}
}
2.switch 和 if 的比较
1) 如果判断的具体数值不多,而且符合 byte、 short 、int、 char, enum[枚举], String 这 6 种类型。虽然两个语句都可 以使用,建议使用 swtich 语句。
2) 其他情况:对区间判断,对结果为 boolean 类型判断,使用 if,if 的使用范围更广。
3.for 循环控制(!!!)
基本介绍:听其名而知其意,就是让你的代码可以循环的执行。
基本语法:
老韩说明:
1). for 关键字,表示循环控制 。
2). for 有四要素:
(1)循环变量初始化
(2)循环条件
(3)循环操作
(4)循环变量迭代
3). 循环操作 , 这里可以有多条语句,也就是我们要循环执行的代码 。
4). 如果 循环操作(语句) 只有一条语句,可以省略 {}, 建议不要省。
for 循环执行流程分析:
注意事项和细节说明:
1) 循环条件是返回一个布尔值的表达式.
2) for(;循环判断条件;) 中的初始化和变量迭代可以写到其它地方,但是两边的分号不能省略。
3) 循环初始值可以有多条初始化语句,但要求类型一样,并且中间用逗号隔开,循环变量迭代也可以有多条变量迭代语句,中间用逗号隔开。
For应用练习:
public class ForExercise { //编写一个 main 方法 public static void main(String[] args) { //打印 1~100 之间所有是 9 的倍数的整数,统计个数 及 总和.//[化繁为简,先死后活]//老韩的两个编程思想(技巧) //1. 化繁为简 : 即将复杂的需求,拆解成简单的需求,逐步完成 编程 = 思想 --练习-> 代码 //2. 先死后活 : 先考虑固定的值,然后转成可以灵活变化的值//////思路分析 //打印 1~100 之间所有是 9 的倍数的整数,统计个数 及 总和 //化繁为简//(1) 完成 输出 1-100 的值 //(2) 在输出的过程中,进行过滤,只输出 9 的倍数 i % 9 ==0 //(3) 统计个数 定义一个变量 int count = 0; 当 条件满足时 count++; //(4) 总和 , 定义一个变量 int sum = 0; 当条件满足时累积 sum += i; //先死后活 //(1) 为了适应更好的需求,把范围的开始的值和结束的值,做出变量 //(2) 还可以更进一步 9 倍数也做成变量 int t = 9;int count = 0;int sum = 0;for (int i = 1;i <= 100 ; ) {if (i % 9 == 0) {System.out.println(i + "可以被9整除"); count++;sum += i;}i++;}System.out.println( "9的倍数有"+ count + "个");System.out.println("总和是" + sum);int j = 0;int k = 5;for (; k > 0; ) {System.out.println(j + "+" + k + "=" + (j + k) ); j++;k--;//老师的解法:// int n = 5; // for( int i = 0; i <= n; i++) { // System.out.println(i + "+" + (n-i) + "=" + n); // }}}
}
4.while 循环控制
基本语法:
while 循环执行流程分析:
注意事项和细节说明:
1) 循环条件是返回一个布尔值的表达式 。
2) while 循环是先判断再执行语句。
//打印 40—200 之间所有的偶数
//
public class WhileExercise{public static void main(String[] args){//化繁为简////先死后活 int start = 40;int end = 200;int i = start;while (i <= 200) {if (i % 2 == 0) {System.out.println(i + "是" + start + "到" + end + "之间的偶数");}i++;}}
}
5.do-while 循环控制
基本语法:
循环变量初始化;
do{
循环体(语句);
循环变量迭代;
}while(循环条件);
老韩说明:
1). do while 是关键字。
2).也有循环四要素, 只是位置不一样。
3). 先执行,再判断,也就是说,一定会至少执行一次 。
4). 最后有一个 分号 ; 。
5). while 和 do…while 区别举例: 要账。
do…while 循环执行流程分析:
注意事项和细节说明
1) 循环条件是返回一个布尔值的表达式。
2) do…while 循环是先执行,再判断, 因此它至少执行一次。
课堂练习题
//
//1) 打印 1—100
//2) 计算 1—100 的和
//3) 统计 1---200 之间能被 5 整除但不能被 3 整除的个数
//
public class DoWhileExercise01{public static void main(String[] args){//化繁为简//先死后活//1)打印 1—100int i = 1;do{System.out.println(i);i++;}while (i <= 100); //2)计算 1—100 的和int j = 1;int sum = 0;do{sum += i;j++;}while (j <= 100);System.out.println("1到100的和是" + sum);//3)统计 1---200 之间能被 5 整除但不能被 3 整除的个数int count = 0;int k = 1;do{if (k % 5 == 0 && k % 3 != 0) {count++;}k++;}while (k <= 200);System.out.println("1到200之间能被5整除但不能被3整除的个数是" + count);}}
4) 如果李三不还钱,则老韩将一直使出五连鞭,直到李三说还钱为止
import java.util.Scanner;
public class DoWhileExercise02 {//编写一个 main 方法 public static void main(String[] args) { //如果李三不还钱,则老韩将一直使出五连鞭,直到李三说还钱为 //[System.out.println("老韩问:还钱吗?y/n")] do...while .. //化繁为简 //(1) 不停的问还钱吗? //(2) 使用 char answer 接收回答, 定义一个 Scanner 对象 //(3) 在 do-while 的 while 判断如果是 y 就不在循环 //一定自己动脑筋.. Scanner myScanner = new Scanner(System.in); char answer = ' '; do {System.out.println("老韩使出五连鞭~"); System.out.println("老韩问:还钱吗?y/n"); answer = myScanner.next().charAt(0);//接收他的回答 System.out.println("他的回答是" + answer); }while(answer != 'y');//判断条件很关键 System.out.println("李三还钱了"); }
}
------文章为自学笔记,学习的课程是B站上的韩顺平30天学JAVA,文章标题的天数是自己学习的天数-----
2021-11-16----韩顺平Java入门第十天相关推荐
- 2021-11-23----韩顺平Java入门第十四天
韩顺平Java入门第十四天(排序.查找) 1.排序 1).排序的介绍:排序是将多个数据,依指定的顺序进行排列的过程. 2).内部排序:指将需要处理的所有数据都加载到内部存储器中进行排序 ...
- 2021-11-10----韩顺平Java入门第七天
韩顺平Java入门第七天 1.标识符 标识符的概念 ①java对各种变量.方法和类等命名是使用的字符序列称为标识符. ②凡是自己可以起名字的地方都叫标识符 in ...
- 2021-11-15----韩顺平Java入门第九天
韩顺平Java入门第九天–程序控制机构 1.程序流程控制介绍 在程序中,程序运行的流程控制决定程序是如何执行的,是我们必须掌握的,主要有三大流程控制语句. 1) 顺序控制 2) ...
- window.addeventlistener 不能调用方法_Java入门第十四课:如何定义”方法“
第十四课,学习定义方法.一个对象包含三种最常见的成员:构造器.Field和方法.Field用于定义状态数据,而方法是行为特征的抽象. 那么什么是方法呢? 在Java中,方法就是用来完成解决某件事情或实 ...
- 韩顺平 java坦克大战_坦克大战完整版(韩顺平java)
[实例简介] 坦克大战完整源代码(韩顺平java视频配套) [实例截图] [核心代码] 5i86q5 └── 源码 └── Class14 ├── 111.wav ├── bin │ ├── bo ...
- 前端简单入门第十八讲 使用jQuery实现表格的隔行换色
还记得之前我使用JavaScript来实现表格的隔行换色效果吗?如果读者初次翻阅本文,可记得看看前端简单入门第十二讲 使用JavaScript完成后台数据展示表格的隔行换色!现在我就来使用jQuery ...
- QT入门第十四天 串口通信协议+收发数据+波特率+数据位+停止位+奇偶校验+串口识别射频RFID的卡号
QT入门第十四天 串口通信[QT入门第十四天 串口通信协议+收发数据+波特率+数据位+停止位+奇偶校验+串口识别射频RFID的卡号 第一章 常见的硬件通信接口协议 [1]硬件通信接口协议 [2]使用串 ...
- QT入门第十天 QT安装和使用alsa库和jpeg库实现音视频录制
QT入门第十天QT安装和使用alsa库和jpeg库实现音视频录制 第一章 ALSA库的移植和使用 1.ALSA简介 2.移植ALSA (1)移植步骤 3.把移植好的库下载到开发板配置 4.使用移植好的 ...
- Java笔记(韩顺平Java基础12-14章)
Java学习笔记(第12章 P444-P459)(第13章P460-P498)(第14章P499-P553) 第12章 异常-Exception 异常介绍 编译异常 异常处理 try-catch异常处 ...
最新文章
- 【每日一算法】填充同一层的兄弟节点
- 生信入门必须掌握的 30 个 Linux 命令
- html 物流状态,css+html如何实现物流进度样式(代码示例)
- Angular 下的 function
- 10个绕过反病毒的恶意用户技巧
- 一文读懂人工智能的前世今生(建议收藏)
- [转贴]在C#中应用哈希表(Hashtable)
- 关于理财、专户、基金与避税
- Django搭建网站笔记
- CS231n第一次作业_问题1
- python去除图片复杂背景_去掉图片黑背景输出为透明背景
- discuz 登录代码流程
- Word批量打印软件/工具
- SparseLDA算法
- ks 曲线_ROC曲线与KS曲线的理解
- JS实现段落的收缩与展开
- php电子病历查询代码,php80电子病历管理系统
- break是跳出当前循环还是所有循环_C语言基础知识3--循环
- java门禁系统实训,Java 并发课题 : CyclicBarrier 打造一个安全的门禁系统
- Design Pattern----01.Creational.AbstractFactory.Pattern (Delphi Sample)
热门文章
- 「连锁餐饮行业热点快报」复工首日上海咖啡外卖订单暴增210%
- Focusing on Developing Radar Technology to Solve Social Problems
- Safari图片显示问号
- GLM联合go-cqhttp实现qq群GLM机器人服务器的本地化部署笔记
- 微信公众号H5点击图片预览(可放大缩小),用微信内置jssdk实现
- AI实现visio和matlab图片转换成eps格式用于latex
- deepin系统安装wine
- 怎么在公众号推文里加附件
- c++ day5 第四章 (三)动态结构,存储类型,数组替代品
- MyBatis-Plus实战