Java学习dayo4
分支结构和循环语句
1.包的概念
包就是文件夹
包的命名规范:全小写,域名倒置,不能以点开头或结尾,可以包含点,每存在一个点表示一个子目录
举例:com.baidu.demo
定义包后,包中的java源文件必须生命所在包。使用package关键字,包的声明永远在第一句
2.Scanner的使用
java.util.Scanner
Scanner这个类提供了用于接收用户输入各种类型数据的功能(方法)
nextInt() 接收用户输入的int类型的数值
nextShort() 接收用户输入short类型的数值
nextDouble() 接收用户输入的double类型的数值
nextFloat()接收用户输入的float类型的数值
nextBoolean() 接收用户输入的boolean类型的数据
next() 接收用户输入的字符串
注意:没有nextChar()
1.先创建一个Scanner类型的变量 自定义一个Scanner工具(此时需要导包,使用import关键字,导入包的语句永远在包声明之后,类声明之前)
2.使用上方我们介绍的功能来接收对应的数据
如果输入了不匹配的数据将会报InputMismathException 输入不匹配异常 将会中断我们的程序
3.选择结构
3.1基本if结构
语法:
if(布尔表达式){
//代码块1
}后续代码...
执行流程:
对布尔表达式进行判断。
结果为true,则先执行代码块1,再执行后续代码。
结果为false,则跳过代码块1,直接执行后续代码。
3.2 if-else结构
语法:
if(布尔表达式){
//代码块1
}else{
//代码块2
}
后续代码...
执行流程:
对布尔表达式进行判断。
结果为true,则先执行代码块1,再退出整个结构,执行后续代码。
结果为false,则先执行代码块2,再退出整个结构,执行后续代码。else不能单独出现 必须结合if结构
3.3 多重if
if(布尔表达式1){
//代码块1
}else if(布尔表达式2){
//代码块2
}else if(布尔表达式3){
//代码块3
}else{
//代码块4
}执行流程:
表达式1为true,则执行代码块1,再退出整个结构。表达式2为true,则执行代码块2,再退出整个结构。
表达式3为true,则执行代码块3,再退出整个结构。
以上均为false,则执行代码块4,再退出整个结构。
注意:相互排斥,有一个为true,其他均不再执行,
适用于区间判断。多重if 适用于某个值处于连续区间的情况
如果处理的情况为连续取件 那么判断条件的顺序 必须为升序 或者 降序 不能是乱序
多重if中最后的else可以根据情况是否书写
3.4 嵌套if
if(外层表达式){
if(内层表达式){
//内层代码块1
}else{
//内层代码块2
}
}else{
//外层代码块
}ctrl + 回车
执行流程:
当外层条件满足时,再判断内层条件。注意:
一个选择结构中,可嵌套另一个选择结构。
嵌套格式正确的情况下,支持任意组合
package com.atguigu.test5;
import java.util.Scanner;
/**
* @author WHD
* @description TODO
* @date 2022/7/9 15:14
* 需求:学校举行百米跑步比赛 跑步时间小于13秒 可以进入决赛 再根据性别进行分组
* 如果用户跑步时间不能进入决赛 没有必要输入性别 所以我们讲性别输入的操作编写在 外层判断条件内
*/
public class Test3 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入你的跑步时间");
double time = input.nextDouble();
if(time < 13){
// 可以进入决赛
System.out.println("恭喜你进入决赛");
System.out.println("请输入你的性别");
String sex = input.next();
// 判断基本数据类型是否等同于某个值 使用==
// 引用数据类型 String 比较内容是否相同 使用equals
// 用法:变量名.equals("比较的内容")
if(sex.equals("男")){
System.out.println("进入男子组");
}else if(sex.equals("女")){
System.out.println("进入女子组");
}else{
System.out.println("暂不支持第三性别");
}
}else{
System.out.println("下次继续加油~");
}
System.out.println("程序结束");
}
}
4. switch结构
switch(变量|表达式){
case 值1:
逻辑代码1;
case 值2:
逻辑代码2;
case 值n:
逻辑代码n;
default:
未满足时的逻辑代码;
}可判断的类型:
byte、short、int、char、String(JDK7+)执行流程:
如果变量中的值等于值1,则执行逻辑代码1。
如果变量中的值等于值2,则执行逻辑代码2。
如果变量中的值等于值n,则执行逻辑代码n。
如果变量中的值没有匹配的case值时,执行default中的逻辑代码。注意:所有case的取值不可相同。
switch 适用于某个值属于固定等值的情况
package com.atguigu.test6;
import java.util.Scanner;
/**
* @author WHD
* @description TODO
* @date 2022/7/9 15:57
* switch 适用于某个值属于固定等值的情况
* 支持的数据类型:byte short int char String(JDK7+) 枚举
*
* 需求:根据名次进行奖励
* 第一名:奖励夏令营三天
* 第二名:奖励苹果13袋
* 第三名:奖励笔记本一本
* 第四名:口头表扬一次
* 其他:继续加油
*/
public class Test4 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入你的名次");
int num = input.nextInt();
switch(num){
case 1:
case 2:
System.out.println("夏令营三天");
break;
case 3:
System.out.println("笔记本一本");
break;
case 4:
System.out.println("口头表扬一次");
break;
default:
System.out.println("继续加油");
break;
}
System.out.println("程序结束");
}
}
5.局部变量
局部变量 | 描述 |
---|---|
定义 | 书写在方法中的变量即为局部变量 |
定义位置 | 书写在方法中 |
作用范围 | 离当前变量最近的大括号以内 |
重名问题 | 在重合的作用范围内不能重名 |
默认值 | 无默认值 |
存储位置 | 基本数据类型存储在栈(stack) 引用数据类型,名字在栈,值在堆(heap) |
生命周期 | 随方法入栈(压栈)而出生,随方法出栈(弹栈)而死亡 |
Java学习dayo4的更多相关文章
- 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁
什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...
- 0035 Java学习笔记-注解
什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...
- 分享篇——我的Java学习路线
虽然之前我是开发出身,但是我学习的语言是Objective-c,这个语言使用起来范围比较窄,对于自动化学习来说也是无用武之地,所以我自己学习了Java,对于一个有开发经验的人来说学习一门新语言相对来说 ...
- Java学习笔记(04)
Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...
- Java学习心得之 HttpClient的GET和POST请求
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Java学习心得之 HttpClient的GET和POST请求 1. 前言2. GET请求3 ...
- 0032 Java学习笔记-类加载机制-初步
JVM虚拟机 Java虚拟机有自己完善的硬件架构(处理器.堆栈.寄存器等)和指令系统 Java虚拟机是一种能运行Java bytecode的虚拟机 JVM并非专属于Java语言,只要生成的编译文件能匹 ...
- 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用
垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...
- 0028 Java学习笔记-面向对象-Lambda表达式
匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...
- 0025 Java学习笔记-面向对象-final修饰符、不可变类
final关键字可以用于何处 修饰类:该类不可被继承 修饰变量:该变量一经初始化就不能被重新赋值,即使该值跟初始化的值相同或者指向同一个对象,也不可以 类变量: 实例变量: 形参: 注意可以修饰形参 ...
随机推荐
- .net core 配置swagger
首先要现有一个asp.net webApi项目 这里就不赘述了,接下来就按下面的步骤进行即可(本文是基于swagger 1.0.0-rc3版本的配置) 1.在project.json中添加 swag ...
- 攻防世界-MISC:Test-flag-please-ignore
这是攻防世界MISC高手进阶区的题目,题目如下 点击下载附件一,解压后得到一个文本文件,打开后得到一串字符串如下: 通过观察,发现是16进制的字符串(由0~f)的字符串组成,尝试将16进制转字符串,结 ...
- C# 核心
C# 核心 面向对象编程概念 面向过程编程是一种以过程为中心的编程思想,分析出解决问题所需要的步骤,然后有函数把步骤一步一步实现,使用的时候一个一个依次调用. 面向对象是一种对现实世界理解和抽象的编程 ...
- 浅尝Spring注解开发_Bean生命周期及执行过程
Spring注解开发 浅尝Spring注解开发,基于Spring 4.3.12 包含Bean生命周期.自定义初始化方法.Debug BeanPostProcessor执行过程及在Spring底层中的应 ...
- 基于.Net C# 通信开发-串口调试助手
基于.Net C# 通信开发-串口调试助手 1.概述 串口调试助手,广泛应用于工控领域的数据监控.数据采集.数据分析等工作,可以帮助串口应用设计.开发.测试人员检查所开发的串口应用软硬件的数据收发状况 ...
- 交换机POE技术知识大全
公众号关注 「开源Linux」 回复「学习」,有我为您特别筛选的学习资料~ 一个典型的以太网供电系统,在配线柜里保留以太网交换机设备,用一个带电源供电集线器(Midspan HUB)给局域网的双绞线提 ...
- RabbitMQ 3.9( 基础 )
1.认识MQ 1.1.什么是MQ? MQ全称:message queue 即 消息队列 这个队列遵循的原则:FIFO 即 先进先出 队列里面存的就是message 1.2.为什么要用MQ? 1.2.1 ...
- Centos7最小化安装报错There are no enabled repos. Run "yum repolist all" to see the repos you have.解决办法
原因是缺少CentOS-Base.repo文件,因为我这台机器wget也不能用,所以我是下载到本地sftp上去的,传输的时候一定要在root用户下,否则会无法启动传输 这是报错的完整信息:Loadin ...
- 人脸识别库 face_recognition
face_recognition Windows系统环境下安装 默认环境:anaconda的python3.7版本,win10环境 第一步:安装dlib 从网络上下载: http://dlib.net ...
- HMS Core分析服务6.5.0版本更新啦
卸载用户价值的合理评估对制定相应的用户召回策略具有重要意义. HMS Core分析服务新版本支持查看用户卸载前使用次数.崩溃次数等指标.通过这些数据,您可以更直观地判断已卸载人群粘性以及崩溃问题对用户 ...