分支结构和循环语句

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的更多相关文章

  1. 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁

    什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...

  2. 0035 Java学习笔记-注解

    什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...

  3. 分享篇——我的Java学习路线

    虽然之前我是开发出身,但是我学习的语言是Objective-c,这个语言使用起来范围比较窄,对于自动化学习来说也是无用武之地,所以我自己学习了Java,对于一个有开发经验的人来说学习一门新语言相对来说 ...

  4. Java学习笔记(04)

    Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...

  5. Java学习心得之 HttpClient的GET和POST请求

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Java学习心得之 HttpClient的GET和POST请求 1. 前言2. GET请求3 ...

  6. 0032 Java学习笔记-类加载机制-初步

    JVM虚拟机 Java虚拟机有自己完善的硬件架构(处理器.堆栈.寄存器等)和指令系统 Java虚拟机是一种能运行Java bytecode的虚拟机 JVM并非专属于Java语言,只要生成的编译文件能匹 ...

  7. 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用

    垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...

  8. 0028 Java学习笔记-面向对象-Lambda表达式

    匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...

  9. 0025 Java学习笔记-面向对象-final修饰符、不可变类

    final关键字可以用于何处 修饰类:该类不可被继承 修饰变量:该变量一经初始化就不能被重新赋值,即使该值跟初始化的值相同或者指向同一个对象,也不可以 类变量: 实例变量: 形参: 注意可以修饰形参 ...

随机推荐

  1. XCTF练习题---MISC---适合作为桌面

    XCTF练习题---适合作为桌面 flag:flag{38a57032085441e7} 解题步骤: 1.观察题目,下载附件 2.拿到题目以后是一张图片,切换一下通道,发现一张二维码,使用QR进行翻译 ...

  2. C# 一维数组如何快速实现数组元素的数据类型的转换?

    一.场景假设 假设有一串字符串如下所示,字符串中的数字之间已用英文状态下的逗号隔开.要求用此字符串中的数字快速生成int类型的数组,且尽可能使用最少的代码量. string str = "1 ...

  3. linux系统如何查看内核版本、操作系统版本等信息

    有时候需要查看linux系统的内核版本,可以有多种方法,方法如下:(下面以优麒麟系统为例) 方法1: 打开mate终端,在命令行输入以下命令: uname -a 运行效果如下: ​​​ 如果只查看内核 ...

  4. 使用WebDriverManager实现自动获取浏览器驱动程序

    原理: 自动到指定的地址下载相应的浏览器驱动保存到缓存区 ~/.cache/selenium 痛点: 解决因Chrome浏览器升级,driver需要同步升级,要重新下载驱动的问题 区别: 传统方式 需 ...

  5. Vue3 与依赖注入

    Vue3 与依赖注入 本文写于 2021 年 2 月 19 日 在 React 中,我们可以通过 context 与 useContext 实现单例.注入--等诸多特性. 详细请看上一篇文章:如何利用 ...

  6. 理解ASP.NET Core - 发送Http请求(HttpClient)

    注:本文隶属于<理解ASP.NET Core>系列文章,请查看置顶博客或点击此处查看全文目录 前言 在.NET中,我们有很多发送Http请求的手段,如HttpWebRequest.WebC ...

  7. 130_传析阅管理系统accdb64位版本

    博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 几年前笔者针对家居门店的进销存.人员管理.工资管理.任务系统.门店经营盈亏管理.销售分析.考勤请假等息息相关的业务基于Ac ...

  8. 使用 awk 命令统计文本

    2022-04-19 11:25:15.008,b4d13bfca8fe4b93a85e65a88520d945,LogScheduler#printLog,10ms,Y,xxxxxxxx 2022- ...

  9. 关于『进击的Markdown』:第四弹

    关于『进击的Markdown』:第四弹 建议缩放90%食用 美人鱼(Mermaid)悄悄的来,又悄悄的走,挥一挥匕首,不留一个活口 又是漫漫画图路... 女士们先生们,大家好!  我们要接受Markd ...

  10. 《Unix 网络编程》14:高级 I/O 函数

    高级 I/O 函数 ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ...