java基础讲义03

news2024/11/24 4:35:43

java基础讲义

  • 一 流程控制
    • 1.1流程控制语句介绍
    • 1.2顺序结构
  • 二 选择控制
    • 2.1 选择结构介绍
    • 2.2 选择语句if
      • 2.2.1 格式1
      • 2.2.2 if格式2
      • 2.2.3 if格式3
    • 2.3 选择语句switch
      • 2.3.1 switch语句介绍
      • 2.3.2 switch注意事项
      • 2.3.3 switch面试题
      • 2.3.4 if语句与switch语句区别
  • 三 循环语句
    • 3.1 循环语句介绍及分类
    • 3.2 for循环
    • 3.3 循环语句while
    • 3.4 循环语句do...while
    • 3.5 循环语句区别
    • 3.6 多重循环语句
      • 3.6.1 多重循环介绍
      • 3.6.1 多重循环案例
    • 3.7 死循环语句
    • 3.8 控制跳转语句
      • 3.8.1 控制语句介绍
      • 3.8.2 案例演示

一 流程控制

1.1流程控制语句介绍

一个java程序有很多条语句组成,流程控制语句是用来控制程序中的各语句执行的顺序,通过流程语句控制让
程序执行顺序达到我们想要实现的功能。
其流程控制方式采用结构化程序设计中规定的三种基本流程结构:
顺序结构
选择结构
循环结构

在这里插入图片描述

1.2顺序结构

顺序结构介绍

是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。
总结:写在前面的先执行,写在后面的后执行

public static void main(String[] args){
	System.out.println("买菜");
	System.out.println("摘菜");
	System.out.println("洗菜");
	System.out.println("切菜");
	System.out.println("配菜");
	System.out.println("炒菜");
	System.out.println("吃饭");
	System.out.println("吃完了");
	System.out.println("锅和碗一起扔了,就可以不用洗了O(∩_∩)O");
}

二 选择控制

2.1 选择结构介绍

选择也被称为分支结构,选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断,逻辑运算的结果有两个,所以产生选择,按照不同的选择执行不同的代码。

2.2 选择语句if

2.2.1 格式1

if(逻辑表达式或boolean类型的值){
语句体;
}

先计算比较表达式的值,看其返回值是true还是false。
true:行语句体
false:不执行语句体

流程图:
在这里插入图片描述

//判断两个变量是否相同
public static void main(String[] args){
// 定义两个变量
int a = 1;
int b = 2;
//判断两个变量是否相等
if (a == b){
System.out.println("a等于b");
}
System.out.println("程序运行完毕!");

1.比较表达式无论简单还是复杂,结果必须是boolean类型
2.if语句控制的语句体如果是一条语句,大括号可以省略;如果是多条语句,就不能省略。建议永远不要省略。

2.2.2 if格式2

if(比较表达式) {
语句体1;
}else {
语句体2;
}

首先计算比较表达式的值,看其返回值是true还是false。
true:执行语句体1
false:执行语句体2

流程图:
在这里插入图片描述
判断一个数是奇数还是偶数

public static void main(String[] args){
// 判断给定的数据是奇数还是偶数
// 定义变量
	int a = 1;
	if(a % 2 == 0) {
	System.out.println("a变量是一个偶数");
	} else{
	System.out.println("a变量是一个奇数");
	}
	System.out.println("程序运行完毕!");
}

三元格式:

boolean flag = a % 2 == 0 ? true : false

2.2.3 if格式3

if(比较表达式1) {
语句体1;
}else if(比较表达式2) {
语句体2;
}else if(比较表达式3) {
语句体3;
}

else {
语句体n+1;
}

执行流程

首先计算比较表达式1看其返回值是true还是false,
如果是true,就执行语句体1,if语句结束。
如果是false,接着计算比较表达式2看其返回值是true还是false,
如果是true,就执行语句体2,if语句结束。
如果是false,接着计算比较表达式3看其返回值是true还是false,

如果都是false,就执行语句体n+1。
注意事项: 当只要有一个条件满足时,if语句结束。else是可以省略,但是不建议省略。
首先判断关系表达式1看其结果是true还是false
true:执行语句体1,if语句结束
false:继续判断关系表达式2看其结果是true还是false
true:执行语句体2,if语句结束
false:就继续判断关系表达式…看其结果是true还是false
false:执行语句体n+1

流程图:
在这里插入图片描述
案例

判断学生成绩等级
90~100 优秀
80~89 良
70~79 中
60~69 及格
0~59 差

int score = 80;
if( score >= 90 && score <= 100 ){
System.out.println("优秀") ;
}else if(score >= 80 && score <= 89 ){
System.out.println("良") ;
}else if(score >= 70 && score <= 79 ){
System.out.println("中") ;
}else if(score >= 60 && score <= 69 ){
System.out.println("及格") ;
}else {
System.out.println("你真的好差,简直差得一匹啊!o(╥﹏╥)o") ;
}

2.3 选择语句switch

2.3.1 switch语句介绍

一个 switch 语句允许测试一个变量等于多个值时的情况。每个值称为一个case,且被测试的变量会对每个switch case 进行检查。

switch语句格式

switch(表达式) {
case 值1 :
语句体1 ;
break ;
case 值2 :
语句体2 ;
break ;
case 值3 :
语句体3 ;
break ;

default:
语句体 n + 1 ;
break ;
}
1.switch表示这是switch语句
表达式的取值:byte,short,int,char
JDK5以后可以是枚举(什么是枚举,以后再讲)
JDK7以后可以是String
2.case后面跟的是要和表达式进行比较的值
3.语句体部分可以是一条或多条语句
4.break表示中断,结束的意思,可以结束switch语句
5.default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似

执行流程

先计算表达式的值,依次和case后面的值进行比较,如果匹配成功就是case中的语句体,遇到break结束。
如果和所有的case后面的值都不能匹配成功,就执行default中的语句体后结束程序。

流程图
在这里插入图片描述
案例

 public static void main(final String[] args) {
        final int a = 2;
        /**
星期二
星期三
星期四
星期五
星期六*/
        switch (a) {
            case 1:
                System.out.println("星期一");

            case 2:
                System.out.println("星期二");

            case 3:
                System.out.println("星期三");

            case 4:
                System.out.println("星期四");

            case 5:
                System.out.println("星期五");

            case 6:
                System.out.println("星期六");
        }
    }

2.3.2 switch注意事项

1.case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的
2.default可以省略吗?
可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。
3.break可以省略吗?
可以省略,但是结果可能不是我们想要的。
会出现一个现象:case穿透。
最终我们建议不要省略
4.default一定要在最后吗?
不是,可以在任意位置。但是建议在最后。
5.switch语句的结束条件
遇到break就结束
执行到末尾就结束

2.3.3 switch面试题

byte可以作为switch的表达式吗? 可以
long可以作为switch的表达式吗? 不可以
String可以作为switch的表达式吗? 可以

2.3.4 if语句与switch语句区别

在做判断的时候,我们有两种选择,if语句和switch语句,那么,我们到底该如何选择使用那种语句呢?

if语句使用场景:
针对结果是boolean类型的判断
针对一个范围的判断
针对几个常量值的判断
switch语句使用场景:
针对几个常量值的判断

三 循环语句

3.1 循环语句介绍及分类

循环语句介绍

循环语句的作用是可以让一段代码(语句)重复执行,重复执行的次数可以根据需求进行控制。

循环语句分类

for循环
while循环
do…while循环

3.2 for循环

for循环格式

for(初始化表达式语句;判断条件语句;控制条件语句) {
循环体语句;
}

执行流程

1.先执行初始化表达式语句,只会执行一次
2.执行判断条件语句,看其返回值是true还是false
如果是true,就继续执行
如果是false,就结束循环
3.执行循环体语句;
4.执行控制条件语句
5.继续判断条件语句

在这里插入图片描述
判断1949到2022有多少个闰年(4年一闰,百年不闰;400年一闰)

public static void main(final String[] args) {
        int num = 0;
        for (int a = 1949; a <= 2022; a++) {
            if (a % 4 == 0 && a % 100 != 0 || a % 400 == 0) {
                num += 1;
            } else {
                continue;
            }
        }
        System.out.println("一共有" + num + "闰年");
    }

3.3 循环语句while

while语句格式

初始化条件语句;
while(判断条件语句) {
循环体语句;
控制条件语句;
}

while执行流程

a:执行初始化条件语句;
b:执行判断条件语句,看其返回值是true还是false
如果是true,就继续执行
如果是false,就结束循环
c:执行循环体语句;
d:执行控制条件语句
e:回到b继续

在这里插入图片描述
循环输出10次helloworld

int x = 1 ;
// 使用while循环
while( x <= 10 ){
System.out.println("HelloWorld!") ;
x++ ;
}

3.4 循环语句do…while

do…while格式

初始化条件语句;
do {
循环体语句;
控制条件语句;
}while(判断条件语句);

执行流程

执行初始化条件语句;
执行循环体语句;
执行控制条件语句;
执行判断条件语句,看其返回值是true还是false
true,就继续执行
false,就结束循环

流程图
在这里插入图片描述
循环输出10次Helloworld

int y = 1 ;
do {
System.out.println("HelloWorld") ;
y++ ;
}while( y <= 3) ;

3.5 循环语句区别

1.do…while循环至少执行一次循环体。
而for,while循环必须先判断条件是否成立,然后决定是否执行循环体语句。
2.如果你想在循环结束后,继续使用控制条件的那个变量,用while循环,否则用for循环。不知道改用谁优
先用for循环。
因为for循环中变量及早的从内存中消失,可以提高内存的使用效率。
while循环的变量是定义在类里面的,需要等整个类执行完后,变量才会消失;当然for循环的变量也可以定义到类里面,建议定义在for循环里面
3.建议优先考虑for循环,然后是while循环 ,最后是do…while循环

3.6 多重循环语句

3.6.1 多重循环介绍

循环里面还有循环,如for循环中且套for循环或且套while循环等。
总循环次数 = 外循环次数 * 内循环次数
格式:
for(初始化表达式;条件判断表达式;控制条件表达式){
for(初始化表达式;条件判断表达式;控制条件表达式){
}
}

3.6.1 多重循环案例

九九乘法表

public static void main(final String[] args) {
        for (int i = 0; i <= 9; i++) {
            for (int j = 0; j <= i; j++) {
                final int num = i * j;
                System.out.print(i + "*" + j + "=" + num + " ");
            }
            System.out.println();
        }
    }

在这里插入图片描述
如何理解多重for循环的过程

分析九九乘法表的执行流程
1.执行int i=0;i<=9;满足条件,进入第一层for循环里面;
2.(当在语句体里面的第一句不是for循环,则执行那句话,按着顺序执行的流程)执行int j=0;j<=i,满足条件,进入第二层for循环里面;
3.执行第二层for循环里面的语句,直到不满足条件为止,跳出第二层for循环;
4.第一层for循环执行控制条件语句,继续判断第一层

总结,进入第二层for循环后,需一直执行到第二层for循环不满足条件为止才跳出第二层for循环,继续接下来的流程

3.7 死循环语句

死循环介绍

判断条件语句的结果永远都为true,那么循环体会一直无休止的执行下去。
死循环可能导致系统资源占用过高及系统全盘崩溃。
简单理解:判断条件一直为true

while(true){...}
for(;;){...}

3.8 控制跳转语句

3.8.1 控制语句介绍

什么是控制语句

控制语句的目的是为了控制程序跳转、中断等操作,goto是java中保留字目前还不能用,但java中提供了
break、continue、return来实现控制语句的跳转和中断。

控制跳转语句的分类

break:
中断,结束单层循环,是单层
continue
继续,结束本次循环继续下一次循环
return
返回,结束方法执行
1.break和continue关键字不影响for循环后面的语句执行
2.return是结束当前方法,for循环结束同时整个方法也结束了,一般程序会将return放在最后

3.8.2 案例演示

break演示

for(int x = 1 ; x <= 10 ; x++){
	if(x == 3){
	break ;
	}
	System.out.println("HelloWorld") ;//第一次能被3整除的时候,这条语句不会执行,整个for循环结束
}

continue演示

for(int x = 1; x <= 10; x++) {
	if( x % 3 == 0) {
	continue;
	}
	System.out.println("HelloWorld");//能被3整除的时候,这条语句就不会执行
}

return演示

for(int x = 1; x <= 10; x++) {
if( x % 3 == 0) {
return;
}
System.out.println("HelloWorld");//第一次能被3整除的时候,这条语句不会执行,整个for循环结束,整个方法也结束
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/53628.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Yolov5 计算访存量MAC与计算量FLOPS

说明&#xff1a;因为yolov5函数中已经计算了 FLOPS&#xff0c;因此如果想要计算访存量那么只需按照flops的位置,添加访存量的计算即可 一、先记住计算量和访存量的公式&#xff1a; 二、找到计算FLOPS的位置&#xff0c;并添加访存量 yolov5中计算flops的位置在torch_utile…

微服务外交官-Feign

引言 书接上篇 负载均衡组件Ribbon核心-LoadBalanced-下 我们讲完了Ribbon负载均衡原理之后&#xff0c;接下讲一个SpringCloud Alibaba新的组件&#xff1a;Fegin 前面章节我们使用Ribbon方式实现负载均衡版的远程调用&#xff0c; //方案4&#xff1a;使用Ribbon方式--带负…

不知道10年老电脑如何重装系统?其实很简单

肯定很多朋友家里都有一两台吃灰的10年老电脑了&#xff0c;当我们有空可以把它拿出来耍耍的时候&#xff0c;却发现电脑无法开机了&#xff0c;想拿去修又觉得不太值得。其实我们可以先试着给电脑重装系统&#xff0c;这样也能先排查系统是否有问题。如果你不知道这台10年老电…

【Linux】Linux编译器-gcc/g++使用

大家好我是沐曦希&#x1f495; 文章目录1.背景知识1.1 预处理1.2 编译&#xff08;生成汇编&#xff09;1.3 汇编&#xff08;生成机器可识别代码&#xff09;1.4 链接接(生成可执行文件或库文件&#xff09;1.5 习题习题一习题二2.函数库2.1 动态库2.2 静态库3.g的基本使用4.…

数据结构之二叉树

数据结构之二叉树什么是二叉树二叉树的特殊类型二叉树的遍历方式二叉树的叶子结点求法二叉树的高度求法什么是二叉树 二叉树&#xff08;Binary tree&#xff09;是树形结构的一个重要数据类型&#xff0c;想要成为二叉树必须满足两个条件。1、本身是有序树。2、树中包含的各个…

【小程序】导航栏和内容页面联动效果实现

&#x1f4ad;&#x1f4ad; ✨&#xff1a; 微信小程序导航栏和页面联动   &#x1f49f;&#xff1a;东非不开森的主页   &#x1f49c;: 因为很多东西来不及去做去看可是时间很快总是赶不上&#xff0c;所以要去成长呀&#x1f49c;&#x1f49c;   &#x1f338;: 如有错…

React—— HelloWorld

React 学习笔记Hello WorldJSX (JavaScript XML) 语法规则JavaScript 语法函数组件、类组件 & 属性 props组合组件生命周期函数 & 状态 state事件处理refs受控组件、非受控组件 & 高阶函数、函数的柯里化npm参考Hello World <!DOCTYPE html> <html lang&…

Request请求转发与Respones请求重定向有什么区别?

目录&#xff1a; 1.Request请求转发 2.Respones请求重定向 3.关于转发和重定向的路径问题 1.Request请求转发 请求转发(forward)是一种在服务器内部的资源跳转方式。 (1)浏览器发送请求给服务器&#xff0c;服务器中对应的资源A接收到请求 (2)资源A处理完请求后将请求发…

在html中使用js实现图片的无缝滚动(四种状态)

文章目录js原理实施任务1.从左往右无缝滚动代码示例运行效果2.从右往左无缝滚动代码示例运行效果3.从上往下无缝滚动代码示例运行效果4.从下往上无缝滚动代码示例运行效果js原理 获取整个ul和ul下面的所有li&#xff0c; 把ul里面的li内容添加一份&#xff0c;因为需要完成图片…

【加油站会员管理小程序】01需求分析

随着这两年微搭产品的迭代,目前组件基本够用,像常用的支付这种功能也是有的,因此我们就可以结合现有功能来完成一个实际使用的小程序的开发。 我们本次的实战课,是以加油站的业务场景为出发点,涵盖会员的开通、充值、消费、积分兑换等常用场景。结合实战案例,我们完整的…

12月2日:thinkphp中的链式操作

补充内容&#xff1a; 今天我们就来聊聊limit和page的区别以及group by需要注意的点&#xff0c;where和having的区别 limit和page 区别 Limit 限制查询数量&#xff0c;在进行分页查询的时候用的最多&#xff0c;但是limit在查询限制中的索引值是从0开始的&#xff0c;lim…

基于Java+Springboot+Vue+elememt疫情返乡人员管控系统设计实现

博主介绍&#xff1a;✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取联系&#x1f345;精彩专栏推荐订阅收藏&#x1f447;&…

一文搞懂如何学习Android内部命令行工具集合

目录 1.安卓命令工具集 2.命令如何使用&#xff08;举例&#xff09; 2.1 am命令使用 2.2 dumpsys 命令使用 2.3 wm命令用法 2.4 rm命令的用法 2.5 logcat 命令的用法 2.6 cat 命令的用法 3.个人如何学习 3.1 推荐学习方法一 3.2 方法二 1.安卓命令工具集 安卓支持…

JMeter入门教程(7) --思考时间

1.人物背景 在JMeter脚本中&#xff0c;思考时间使用定时器模拟实现的 2.任务目标 掌握基于JMeter性能测试脚本开发——思考时间 3.任务实操 3.1 固定定时器 右击取样器&#xff0c;选择“添加 > 定时器 > 固定定时器&#xff0c;如图示&#xff1a; 2.固定定时器页…

手机无线耳机什么牌子的好用?2022好用的无线蓝牙耳机排行榜

现如今的蓝牙耳机市场中有着多种机型&#xff0c;不同功能&#xff0c;不同价格的蓝牙耳机数不胜数&#xff0c;一部手机、一副耳机似乎已经成为了人们外出的搭配。那么手机无线耳机什么牌子的好用呢&#xff1f;下面我来给大家推荐几款好用的无线蓝牙耳机&#xff0c;大家可以…

团队协作利器----API接口Eolink

本文目录&#xff1a;一、初识Eolink1.什么是Eolink2.我与Eolink的故事二、Eolink突出特点----团队协作协同工作分享协作支持所有类型API文档、测试方便导出接口文档方便查看历史记录三、Eolink优势总结前言&#xff1a; hello大家好&#xff0c;我是Dream&#xff0c;在我们的…

安卓中adb命令工作的底层原理及使用举例

目录 1. adb安卓调试桥 2.adb的组成 3.adb命令的使用举例: 3.1什么是应用包?什么是应用界面? 3.2 adb 命令如何获取应用应用包名和应用界面名? 1. adb安卓调试桥 adb的全称为Android Debug Bridge&#xff0c;就是起到调试桥的作用。通过adb我们可以在Eclipse中方便通过…

c程序从编译开始到运行结束的过程

重温c语言 我们在linux平台下建立一个a.c文件,程序很简单&#xff0c;显示输出Please input your name:&#xff0c;然后让我们输入名字&#xff0c;最后调用了一个子函数输出hello,我们的名字 #include<stdio.h>void hello(char * name);int main(){char name[16]{0};p…

(4E)-TCO-PEG4-acid,1802913-21-8物理性质分享

(4E)-TCO-PEG4-acid物理数据&#xff1a; CAS&#xff1a;1802913-21-8| 中文名&#xff1a;(4E)-反式环辛烯-四聚乙二醇-羧酸 | 英文名&#xff1a; (4E)-TCO-PEG4-acid 结构式&#xff1a; 英文别名&#xff1a; (4E)-TCO-PEG4-COOH TCO4-PEG4-COOH 中文别名&#xff1a…

【Flink】一文解析Flink如何实现状态管理和容错机制

文章目录一 Flink中的状态管理1 有状态的算子和应用程序&#xff08;1&#xff09;算子状态&#xff08;operator state&#xff09;&#xff08;2&#xff09;键控状态&#xff08;keyed state&#xff09;2 状态后端3 选择一个状态后端二 Flink中的容错机制1 一致性检查点&am…