百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT技术 > 正文

初识Java—(八)流程控制(1)(java8入门教程)

wptr33 2024-11-16 01:27 47 浏览

任何一门编程语言都会提供两种基本的流程控制结构:分支结构和循环结构。其中分支结构根据条件来选择性地执行某段代码,循环结构则用于实现根据循环条件重复执行某段代码。

Java中的分支结构语句为:if、switch

Java中的循环结构语句为:while、do while、for、foreach

Java中提供了break、continue来控制程序的循环结构

这里用到Scanner类。这里简单一说,后续很详细介绍。

Scanner scan = new Scanner(System.in);
int a = scan.nextInt();

4.1 顺序结构

顺序结构就是程序从上到下逐行的执行,中间没有任何判断和跳转。

举例1:

package com.langsin.test;
public class TestCar {
public static void main(String[] args) {
int a = 3;
int b = 5;
int c = a+b;
System.out.println("输出结果:"+c);
}
}

4.2方法以及剖析类


方法就是一段可重复调用的代码段,例如,有某段长度约100行的代码,要在多个地方使用此段代码,如果在各个地方都重复编写此部分代码,则肯定会比较麻烦,而且此部分代码如果进行修改,也比较困难,那么此时可以将些部分代码定义成一个方法,以供程序反复调用。方法在有些书籍称为函数,这两者本身并没有什么区别,是同样的概念,只是称呼方式不一样而已。

定义方法的定义格式:

修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2…) {
函数体;
return 返回值;
}

方法格式解释

(1)修饰符:比较多,后面会详细介绍。目前public static

(2)返回值类型:用于限定返回值的数据类型

(3)方法名:一个名称,为了方便我们调用方法

(4)参数类型:限定调用方法时传入参数的数据类型

(5)参数名:是一个变量,接收调用方法时传入的参数

(6)方法体:完成功能的代码

(7)return:结束方法以及返回方法指定类型的值

(8)返回值 程序被return带回的结果,返回给调用者

要特别注意的是,如果不需要传递参数到方法中,只要将括号写出,不必填入任何内容。此外,如果方法没有返回值,则在返回值类型处要明确写出void,此时,在方法中的return语句可以省略。方法执行完后无论是否存在返回值都将返回到方法的调用处并向下继续执行。


举例1:

package com.langsin.test;
public class TestCar {
public int getNum(int a,int b){
return a+b;
}
Public static void main(String[] args) {
TestCar test = new TestCar();
int result = test.getNum(5, 6);
System.out.println("计算后的结果为:"+result);
}
}

4.3 分支结构

Java语言使用if语句和switch语句来进行分支控制,其中if语句使用boolean表达式或boolean值来作为分支条件进行分支控制;switch语句则用于对多个数值进行匹配,从而实现分支。

4.2.1 if条件语句

if语句格式1 :

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


执行流程:

先计算比较表达式的值,看其返回值是true还是false。

如果是true,就执行语句体;

如果是false,就不执行语句体;


if语句格式2:

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

执行流程:

首先计算比较表达式的值,看其返回值是true还是false。

如果是true,就执行语句体1;

如果是false,就执行语句体2;


注意:else后面是没有比较表达式的,只有if后面有。

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语句的注意事项

A:比较表达式无论简单还是复杂,结果必须是boolean类型

B:if语句控制的语句体如果是一条语句,大括号可以省略;

如果是多条语句,就不能省略。建议永远不要省略。

C:一般来说:有左大括号就没有分号,有分号就没有左大括号


举例1:

package com.langsin.test;

public class TestCar {
public static void main(String[] args) {
boolean flag = 5>3;
//使用变量,此种方式为常用方式
if(flag){
System.out.println("条件为真执行");
}
//使用常量
if(true){
System.out.println("使用常量,此代码永远会被执行");
}
//使用表达式,此种方式为常见使用方式
if(5>3){
System.out.println("表达式的结果为true时,代码会被执行");
}
//完整的if分支结构
int a = 5;
int b = 8;
if(a>b){
System.out.println("a的值大于b的值");
}else{
System.out.println("a的值不大于b的值");
}
//分支的嵌套使用
if(a>b){
if(b>0){
System.out.println("a的值大于b的值,并且b的值大于0");
}
}
//此代码段等价于上面的代码
if(a>b && b>0){
System.out.println("a的值大于b的值,并且b的值大于0");
}
//完整结构下的嵌套
if(a>b){
if(b>0){
System.out.println("a的值大于b的值,并且b的值大于0");
}else{
System.out.println("a的值大于b的值,但是b的值不大于0");
}
}else{
if(a>0){
System.out.println("a的值不大于b,并且a的值大于0");
}else{
System.out.println("a的值不大于b,并且a的值不大于0");
}
}
//if语句串联使用
if(a>b){
System.out.println("a的值大于b的值");
}else if(a>0){
System.out.println("a的值不大于b的值,并且a的值大于0");
}
}
}

4.2.2 switch分支语句

switch语句由一个控制表达式和多个case标签组成,表达式的数据类型只能是byte、short、int、char四个整数类型和枚举类型。JDK 1.7开始,可以接收String类型的值 。

switch语句格式:
switch(表达式) {
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
...
default:
语句体n+1;
break;
}


格式的解释:

switch:表示这是switch选择结构

表达式:这个地方的取值是有限定的

byte,short,int,char

JDK5以后可以是枚举

JDK7以后可以是字符串

case:后面跟的是要和表达式进行比较的值,这个值是常量,而且还得是唯一

语句体:要执行的代码

break:表示中断,结束的意思,可以控制switch语句的结束。

default:当所有的值都和表达式不匹配的时候,就执行default控制的语句。其实它就相当于if语句的else。


举例1:

package com.langsin.test;

public class TestCar {
public static void main(String[] args) {
int a = 1;
switch (a) {
case 1:
System.out.println("当key值为1时的运行代码段");
int x = 2;
int y = 3;
int z = x + y;
System.out.println("计算加法后的结果:"+z);
break;

case 2:
System.out.println("当key值为2时的运行代码段");
int x1 = 2;
int y1 = 3;
int z1 = x1 - y1;
System.out.println("计算减法后的结果:"+z1);
break;

default:
System.out.println("当key值不符合任意条件时,默认执行的代码段");
break;
}
}
}


switch语句的注意事项:

A:case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的

B:default可以省略吗?

可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。

特殊情况:

case就可以把值固定。

A,B,C,D

C:break可以省略吗?

可以省略,但是结果可能不是我们想要的。

会出现一个现象:case穿透。

最终我们建议不要省略

D:default一定要在最后吗?

不是,可以在任意位置。但是建议在最后。

E:switch语句的结束条件

a:遇到break就结束了

b:执行到末尾就结束了

相关推荐

oracle数据导入导出_oracle数据导入导出工具

关于oracle的数据导入导出,这个功能的使用场景,一般是换服务环境,把原先的oracle数据导入到另外一台oracle数据库,或者导出备份使用。只不过oracle的导入导出命令不好记忆,稍稍有点复杂...

继续学习Python中的while true/break语句

上次讲到if语句的用法,大家在微信公众号问了小编很多问题,那么小编在这几种解决一下,1.else和elif是子模块,不能单独使用2.一个if语句中可以包括很多个elif语句,但结尾只能有一个...

python continue和break的区别_python中break语句和continue语句的区别

python中循环语句经常会使用continue和break,那么这2者的区别是?continue是跳出本次循环,进行下一次循环;break是跳出整个循环;例如:...

简单学Python——关键字6——break和continue

Python退出循环,有break语句和continue语句两种实现方式。break语句和continue语句的区别:break语句作用是终止循环。continue语句作用是跳出本轮循环,继续下一次循...

2-1,0基础学Python之 break退出循环、 continue继续循环 多重循

用for循环或者while循环时,如果要在循环体内直接退出循环,可以使用break语句。比如计算1至100的整数和,我们用while来实现:sum=0x=1whileTrue...

Python 中 break 和 continue 傻傻分不清

大家好啊,我是大田。...

python中的流程控制语句:continue、break 和 return使用方法

Python中,continue、break和return是控制流程的关键语句,用于在循环或函数中提前退出或跳过某些操作。它们的用途和区别如下:1.continue(跳过当前循环的剩余部分,进...

L017:continue和break - 教程文案

continue和break在Python中,continue和break是用于控制循环(如for和while)执行流程的关键字,它们的作用如下:1.continue:跳过当前迭代,...

作为前端开发者,你都经历过怎样的面试?

已经裸辞1个月了,最近开始投简历找工作,遇到各种各样的面试,今天分享一下。其实在职的时候也做过面试官,面试官时,感觉自己问的问题很难区分候选人的能力,最好的办法就是看看候选人的github上的代码仓库...

面试被问 const 是否不可变?这样回答才显功底

作为前端开发者,我在学习ES6特性时,总被const的"善变"搞得一头雾水——为什么用const声明的数组还能push元素?为什么基本类型赋值就会报错?直到翻遍MDN文档、对着内存图反...

2023金九银十必看前端面试题!2w字精品!

导文2023金九银十必看前端面试题!金九银十黄金期来了想要跳槽的小伙伴快来看啊CSS1.请解释CSS的盒模型是什么,并描述其组成部分。...

前端面试总结_前端面试题整理

记得当时大二的时候,看到实验室的学长学姐忙于各种春招,有些收获了大厂offer,有些还在苦苦面试,其实那时候的心里还蛮忐忑的,不知道自己大三的时候会是什么样的一个水平,所以从19年的寒假放完,大二下学...

由浅入深,66条JavaScript面试知识点(七)

作者:JakeZhang转发链接:https://juejin.im/post/5ef8377f6fb9a07e693a6061目录...

2024前端面试真题之—VUE篇_前端面试题vue2020及答案

添加图片注释,不超过140字(可选)...

今年最常见的前端面试题,你会做几道?

在面试或招聘前端开发人员时,期望、现实和需求之间总是存在着巨大差距。面试其实是一个交流想法的地方,挑战人们的思考方式,并客观地分析给定的问题。可以通过面试了解人们如何做出决策,了解一个人对技术和解决问...