-
2020-11-05 23:02:27
Java流程控制
1、顺序结构
- 如果没有流程控制(即没有分支结构和循环结构),Java方法里面的语句是一个顺序执行流,从上到下依次执行每条语句。
2、分支结构
1. if语句
- if语句使用布尔表达式或者布尔值作为分支条件来进行分支控制。有如下三种形式:
- 第一种:
if(布尔表达式或者布尔值){ 语句... }
- 第二种
if(布尔表达式或者布尔值){ 语句... }else{ 语句... }
- 第三种
if(布尔表达式或者布尔值){ 语句... } else if(布尔表达式或者布尔值){ 语句... } ...//可以有零个或者多个else if语句 else//最后的else语句也可以省略 { 语句... }
注意:
- if之后括号里的表达式的返回值只能是true或者false,不能是1或者0。
- 当使用if…else语句进行流程控制时,一定不要忽略else的隐含条件,else的隐含条件是对前面的条件取反。
- 使用if…else语句时,一定要先处理包含范围更小的情况。
//下面是一个容易出现的逻辑错误 public class demo{ public static void main(String[] args){ int age = 45; if(age > 20){ System.out.println("青年人"); }else if(age > 40){ System.out.println("中年人"); }else if(age > 60){ System.out.println("老年人"); } //程序永远不会输出中年人和老年人 } }
如例子中的age>60和age>20两个条件,明显age>60的范围更小,所以应该优先处理age>60的情况。
- if、esle、else if后的条件执行体要么是一个花括号括起来的代码块,要么是以分号为结束符的一行语句,甚至可能是一个空语句。
- 如果省略了if条件后条件执行体的花括号,那么if条件只控制到紧跟该条件语句的第一个分号处。
下面给出一个省略花括号导致编译出错的例子:
int c = 5; if(c > 4) c--; //下面是一行普通代码,不属于执行体 System.out.println("c大于4"); //此处的else将没有if语句,因此编译出错 esle System.out.println("c不大于4");
2. switch语句
- 语法格式如下:
switch (expression){ //可以省略case后代码块的花括号 case condition1: { statement(s) break; } case condition2: { statement(s) break; } ... case conditionN: { statement(s) break; } default: { statement(s) } }
注意:
-
switch语句后面的控制表达式的数据类型只能是byte、short、char、int四种整数类型、枚举类型和java.lang.String类型(Java7才允许),不能是StringBuffer或者StringBuilder这两种字符串类型,也不能是boolean类型。
-
switch语句会先求出expression表达式的值,然后拿这个表达式和case标签后的值进行比较,一旦遇到相等的值,程序就开始执行这个case标签后的代码,不再判断与后面case、default标签的条件是否匹配,除非遇到break才会结束,所以注意不要忽略case后代码块的break。
3、循环结构
- 一般循环语句可能包含4个部分:
- 初始化语句(init_statement)
- 循环条件(test_expression)
- 循环体(body_statement)[循环体如果只有一行语句,可以省略花括号]
- 迭代语句(iteration_statement)
- 三种循环结构之间可以相互嵌套。
1.while循环语句
- 语法格式如下:
[init_statement] while(test_expression){ statement; [iteration_statement] }
注意:
如果省略了循环体的花括号,那么while循环条件只控制到紧跟该循环条件语句的第一个分号处。2.do while循环语句
- 语法格式如下:
[init_statement] do{ //与while不同的是,while循环的循环体可能得不到执行,但do while的循环体至少执行一次 statement; [iteration_statement] }while(test_expression);//这里一定要有分号,表明循环结束
3.for循环语句
- 语法格式如下:
for( [init_statement] ; [test_expression] ; [iteration_statement] ){ statement; } //如果循环体只有一行语句,那么循环体的花括号可以省略
- 程序执行for循环时,最先执行初始化语句init_statement(初始化语句只在循环开始前执行一次),然后判断循环条件test_expression,如果得到true,则执行循环体(每次执行循环体之前都会先进行循环条件判断),循环体执行结束后执行迭代语句。
注意:- for循环如果需要在初始化表达式中声明多个变量,那么这些变量应该具有相同的数据类型。
- for循环圆括号中只有两个分号是必需的,初始化语句、循环条件、迭代语句部分都是可以省略的。如果省略了循环条件,则这个循环条件默认为true。
- 建议不要在循环体内修改循环变量(也叫循环计数器)的值,否则会增加程序出错的可能性。万一程序真的需要访问,修改循环变量的值,建议重新定义一个临时变量,先将循环变量的值赋给临时变量,然后对临时变量的值进行修改。
- 把for循环的初始化语句放在循环之前定义有一个作用:可以扩大初始化语句中所定义变量的作用域。
4.foreach循环语句
- 语法格式如下:
**for(元素变量 x : 遍历对象 obj){ 引用了x的java语句 }**
例:
int arr[] = {7,10,1}; for(int x : arr){ //foreach语句,int x 引用的变量,arr 指定要循环遍历的数组,最后将x输出 syso(x); }
结果:
7 10 1
5.控制循环结构
- break:用于完全结束break语句所在循环,跳出当前循环体。
- break还可以用于直接结束其外层循环,此时需要借助标签。Java的标签就是一个紧跟着英文冒号(:)的标识符。与其他语言不同的是,Java中的标签只有放在循环语句之前才有作用。例如下面代码:
public class Demo1 { public static void main(String[] args) { //外层循环,outer作为标识符 outer: for(int i = 0;i < 5;i++) { //内层循环 for(int j = 0;j < 3;j++) { System.out.println("i="+i+" j="+j); if(j == 1) { //跳出outer标签所标识的循环 break outer; } } } } }
第11行的break outer;语句将会导致结束outer标签指定的循环,而不是break所在的循环。注意:break后的标签必须是一个有效的标签,即应该把标签放在break语句所在循环的外层循环之前定义。当然,也可以把标签放在break语句所在循环之前定义,只是这样就失去了标签的意义,因为break默认就是结束其所在的循环。
- continue:用于忽略本次循环剩下的语句,接着开始下一次的循环,并不会终止循环。
- 与break类似,continue后也可以紧跟一个标签,用于直接跳过标签所标识循环的当次循环的剩下语句,重新开始下一次循环。这个标签通常应该放在continue所在循环的外层循环之前定义。
- return:直接结束整个方法,从而结束循环。
更多相关内容 -
Java流程控制.md
2020-05-13 07:30:06Java流程控制,包含Scanner调用方法和简单,顺序结构,基础循环,还有简单debug方法(没有详细介绍debug,文档里有链接,其他大大有总结好的) -
java流程控制语句练习答案
2016-09-26 15:45:59java课程培训,第三章流程控制语句课后习题答案及讲解代码。 -
Java流程控制.docx
2020-05-13 08:14:57Java基础流程的word版,md文件可能有些图片无法加载,这个有里面的图片 内容相同,多了例题和效果图 -
Java流程控制顺序结构原理解析
2020-08-25 09:59:32主要介绍了Java流程控制顺序结构原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 -
使用Java流程控制语句判断今天是今年的第几天
2019-08-06 20:28:33在不使用java工具类的情况下,通过流程控制语句判断今天是今年的第几天 -
java流程控制
2012-07-02 12:05:32演示Java中几种常用的流程控制操作 如if-else 三种常用的循环语句 for循环 while循环 do-while循环 -
Java流程控制语句
2021-02-17 10:24:23在java程序中控制语句分为三大块: 一、 if…else语句 该语句又可以划分为四个模块: 1.if语句 这是最简单的if语句。假如当某个程序执行有很多答案,在众多答案中有自己需要的,也有不需要的,那么我们可以通过if语句...程序在执行时,都是死死的按照给出的指令去执行方法,而如今程序可以根据不同的情况去执行不同的命令,而控制这一流程的主要功能就是流程控制语句。
流程控制语句就是在代码执行之前给出判断或者其它,让代码根据实际情况执行不同的代码,就好比水流,分流进另一个分支河道,流向不同的地方。
在java程序中控制语句分为三大块:
一、 if…else语句
该语句又可以划分为四个模块:
1.if语句
这是最简单的if语句。假如当某个程序执行有很多答案,在众多答案中有自己需要的,也有不需要的,那么我们可以通过if语句将其不需要的语句拦截下来,获取自己需要的答案。
2.if…else语句
在if语句的基础上添加了else流向。在某些时候会需要程序能够根据判断分流得到两种结果,就需要用到if…else。
3.if…elseif…else语句
这个语句一般用于连环判断的时候,有两种以上的结果出现才会用到。
4.嵌套的if…else语句
if…else控制语句可以实现分流处理业务,而更为复杂的流程通过简单的语句是无法实现的,这时候需要使用嵌套。嵌套的好处是可以让结果在同时满足一个条件的同时又可以判断另一个条件,从而实现多样化的操作。
二、 switch语句
switch case 语句有如下规则:
switch语句中的变量类型可以是:byte、short、int或者char、enum。从Java SE 7开始,switch支持字符串String类型了,同时case标签必须为字符串常量或字面量。
switch语句可以拥有多个case语句。每个case后面跟一个要比较的值和冒号。case语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。
当变量的值与case语句的值相等时,那么case语句之后的语句开始执行,直到break语句出现才会跳出switch语句。
当遇到break语句时,switch语句终止。程序跳转到switch语句后面的语句执行。case 语句不必须要包含break语句。如果没有break语句出现,程序会继续执行下一条case语句,直到出现 break 语句。
switch语句可以包含一个default分支,该分支一般是switch语句的最后一个分支(可以在任何位置,但一般在最后一个)。default在没有case语句的值和变量值相等的时候执行。default分支不需要 break语句。
三、 循环语句
Java中有三种主要的循环结构:for循环、while循环、do…while循环、Java增强for循环。
1.for循环
2.while循环
while是最基本的循环,它的结构为:
3.do…while循环
do…while 循环和 while 循环相似,不同的是,do…while 循环至少会执行一次。
4.java增强型for循环
Java5引入了一种主要用于数组的增强型for循环。但需要注意一点:Java增强型for循环只能取值,不能赋值。
break : 结束循环。
continue : 结束本次循环,进入下一次循环。
return : 结束一个方法,方法的结束了,循环自然被结束。
注意:在while和do…while中使用continue时要注意更新语句的位置。 -
Java流程控制语句练习题
2012-11-14 17:01:021.下列语句序列执行后,m 的值是 int a=10, b=3, m=5; if( a==b ) m+=a; else m=++a*m; A) 15 B) 50 C) 55 D) 5 -
Java流程控制(一)
2021-02-06 22:20:42Java流程控制(一)1.用户交互Scanner2.顺序结构3.选择结构if单选结构if双选择结构if多选择结构嵌套的if结构switch多选择结构 1.用户交互Scanner 之前我们学的基本语法中我们并没有实现程序和人的交互,但是Java给...1.用户交互Scanner
- 之前我们学的基本语法中我们并没有实现程序和人的交互,但是Java给我们提供了这样一个工具类,我们可以获取用户的输入。java.util.Scanner是Java5的新特性,
我们可以通过Scanner类来获取用户的输入
- 基本语法
Scanner s = new Scanner(System.in);
- 通过Scanner类的next( )与nextLine( )方法获取输入的字符串,在读取前我们一般需要使用hasNext( )与hasNextLine( )判断是否还有输入的数据。
程序最后记得输入
scanner.close()
关闭scanner,减少资源的占用2.顺序结构
- JAVA的基本结构就是顺序结构,除非特别声明,否则就按照顺序一句一句执行。
- 顺序结构是最简单的结构算法。
- 语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,
它是任何一个短发都离不开的一种基本算法结构。
3.选择结构
我们很多时候需要去判断一个东西是否可行,然后我们采取执行,这样一个过程在程序中用if语句表示
语法
if(布尔表达式){ //如果布尔表达式为true将执行的语句 }
场景:公司要收购一个软件,成功了:给人支付100万元,失败了:自己找人开发。
在这种场景下用一个if就搞不定了,我们需要有两个判断,需要一个双选择结构(
if-else
)语法:
if(布尔表达式){ //如果布尔表达式的值为true }else{ //如果布尔表达式的值为false }
场景:可能真实情况可能存在ABCD等多种选择,存在区间多级判断。比如90-100就是A,80-90就是B…,生活中我们有很多时候的选择也不仅仅只有两个,多以我们需要一个多选择结构来处理这类问题!
语法:
if(布尔表达式1){ //如果布尔表达式 1的值为true,则执行 }else if(布尔表达式2){ //如果布尔表达式 2的值为true,则执行 }else if(布尔表达式3){ //如果布尔表达式 3的值为true,则执行 }else{ //如果以上布尔表达式都不为true,执行代码 }
使用嵌套的if…else语句是合法的。也就是说你可以在另一个if或者else if语句中使用if或者else if语句。你可以像if语句一样嵌套else if…else。
语法:
if(布尔表达式1){ //如果布尔表达式 1的值为true,执行 if(布尔表达式2){ //如果布尔表达式 2的值为true,执行 } }
思考?我们需要寻找一个数,在1-100之间(提示:二分法)
- 多选择结构还有一个实现方式就是switch case语句。
- switch case语句判断一个变量与一系列值中某个值是否相等,每个值成为一个分支。
- switch语句中的变量类型可以是:
- byte、short、int或者char
从Java SE 7开始,switch支持字符串String类型了
- 同时case标签必须为字符串常量或字面量。
switch(expression){ case value: //语句 break; case value: //语句 break; //你可以有任意数量的case语句 default://可选 //语句 }
顺着文件找到我们当时写代码前建好的包,找到class文件
我们无法直接把文件从IDEA上粘贴上去,所以需要找到存放java文件的文件夹,直接把class文件放进去
总结:
-
每一个对象都有自己的hashCode,每一个字符中文都有它对应的hash值,然后IDEA通过hash值来判断比较
-
代码编译以后,在字节码他就是像(上图)这样执行的
-
直接把class文件丢到IDEA里面就可以查看他的源码(简单暴力的反编译方法),如果想下一些其它的反编译工具可以自行百度
-
多看源码!
学习资料:狂神说
欢迎大家关注博主的公众号:小黄的阁楼,里面的学习笔记会和CSDN同步,欢迎前来一起学习!!
- 之前我们学的基本语法中我们并没有实现程序和人的交互,但是Java给我们提供了这样一个工具类,我们可以获取用户的输入。java.util.Scanner是Java5的新特性,
-
详解JAVA流程控制语句
2020-08-30 20:28:50主要介绍了Java中的流程控制语句,循环等语句是Java编程中流程控制的基础,需要的朋友可以参考下 -
深入分析JAVA流程控制语句
2020-08-19 01:19:15主要介绍了JAVA流程控制语句的的相关资料,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下 -
Java流程控制结构
2021-02-26 19:05:21一、概念类型Java程序通过控制语句来控制方法的执行流程,从而实现特定的功能Java中的流程控制结构主要有三种:顺序结构;选择结构;循环结构。三种结构的结合使用可以解决任何复杂问题。二、流程表示——程序流程图...一、概念类型
Java程序通过控制语句来控制方法的执行流程,从而实现特定的功能
Java中的流程控制结构主要有三种:顺序结构;
选择结构;
循环结构。
三种结构的结合使用可以解决任何复杂问题。
二、流程表示——程序流程图
流程图的基本符号如下:
程序流程图
三、循环结构
while语句
while ( 布尔表达式 ) {
循环体;
}
do-while语句
do{
循环体;
}while ( 表达式 );
例: DoWhileTest. java
注意:
1、不论表达式的值是true还是false,循环体中的语句至少被执行一次。
2、注意语句末尾的分号。
for语句
for ( 表达式1; 表达式2; 表达式3 ) {
循环体;
}
表达式1:循环变量赋初值的表达式,循环体内使用的变量也可以在此定义或者赋初值。表达式1中可以并列多个表达式,但它们之间要用逗号隔开。
表达式2:为布尔表达式;其值为true时,继续执行循环体;其值为false时,结束循环,执行for语句块后续的程序内容。
for语句的特殊形式:
空循环体:
for( int n = 1; n <= 80000; n++ );
减量表达式:
for( int n = 100; n >= 0; n-- ) System.out.println(n * n+ " ")
省略表达式:
for( ; ; );
简化循环体:
for (int n = 1; n <= 100; System.out.print(n * n + " "), n++);
例: Square. java
四、流程控制语句
设计循环语句时的注意事项:
确保表达式的值在特定的循环次数完成后,可以变成false,结束循环,避免出现死循环;
注意>和>=、
注意表达式里的=和==。
循环嵌套:
for语句、while语句和do-while循环语句里还可以包含另一个或多个循环语句。
附:
break和continue语句
break语句:
通常用在循环语句和switch语句中。作用是使程序从一个语句体的内部跳出去,继续执行该语句体下面的语句。
public static void main( String args[] ) {
for ( int d = 1; d <= 10; d++ ) {
double area = Math.PI * (d/2 ) * (d/2);
if ( area > 30 ) break;
System.out.println ( area );
}
}
通常break语句一般可用于两种情况:
1.终止switch语句的执行
2.在循环结构中,用于终止break语句所在层的循环。
continue语句:
必须用于循环结构中,它的作用是终止当前这一轮的循环,跳出本轮循环剩余的语句,直接进入当前循环的下一轮。
-
Java面向对象程序设计杨晓燕Java流程控制结构PPT教案学习.pptx
2021-09-30 19:19:27Java面向对象程序设计杨晓燕Java流程控制结构PPT教案学习.pptx -
BOSS Flow:工作流程控制和配置Java框架-开源
2021-04-15 04:36:09一个简单易懂的应用程序控制流的框架。 通过XML和注释管理流很容易。 有许多简单的方法来捕获动作,例如过渡,步骤进入或离开,包括控制类似于'if'或'switch'语句的决策。 -
Java面向对象程序设计杨晓燕第4章Java流程控制结构PPT教案学习.pptx
2021-09-30 19:19:28Java面向对象程序设计杨晓燕第4章Java流程控制结构PPT教案学习.pptx -
六、java的流程控制x_java流程控制语句有哪些
2020-08-31 21:12:43HPERIK " 六java的流程控制 1顺序结构 顺序结构就是指按语句执行的先后顺序,或者说语句出现的先后顺序逐条执行程序语句语句块,完全是按照程序平台的执行约定进行的比如第一个 Heloorld程序?pbli lss HelloWorld? ? ... -
Java启动并控制其他程序
2021-03-17 17:43:06Java启动并控制其他程序,本例将演示如何在一个Java 程序中打开另外一个Java 程序,并且可以控制打开程序的关闭。类似的,在Java 的IDE 开发工具JBuilder 中就用这种形式来运行编写的程序。效果如图所示,当单击... -
Java面向对象程序设计杨晓燕第4章Java流程控制结构教学提纲.ppt
2020-06-05 01:44:12第4章 Java 流程控制结构;本章主要内容;语句和程序流程控制结构; ; ;多选择结构switch语句 ;循环结构loop structure;While循环;例4.9 while循环结构迭代算法 class LoopTest1 { public static void main(String args... -
实验4 java流程控制实验.doc
2020-11-15 00:07:51实验4 Java流程控制实验 实验4 Java流程控制实验 实验4 Jaa流程控制与面向对象编程 姓名 学号: 专业 计算机科学与技术 班级 同组人 无 实验日期: 实验目的与要求 熟悉f结构的基本语法 掌握面向对象程序设计方法 ... -
java面向对象程序设计杨晓燕第4章java流程控制结构.pptx
2020-02-28 00:36:34本章主要内容简单语句和复合语句选择结构循环结构语句和程序流程控制结构编写程序是为了解决问题程序员不仅要完全了解问题规划解决问题的步骤而且必须要清楚地知道程序设计语言所支持的程序流程控制结构语句... -
java程序控制
2013-08-29 17:26:40java程序控制 -
详解JAVA流程控制语句.pdf
2020-11-23 09:21:01详详解解JAVA流流程程控控制制语语句句 这篇文章主要介绍了Java中的流程控制语句,循环等语句是Java编程中流程控制的基础,需要的朋友可以参考下 第第一一节 JAVA条条件件语句句之之if语句句 1.单 的if语句语法 if ... -
Java初级教程Java流程控制语句PPT教案学习.pptx
2021-09-30 19:13:08Java初级教程Java流程控制语句PPT教案学习.pptx -
【Java编程课件】第三章java流程控制.pptx
2021-10-11 19:42:16【Java编程课件】第三章java流程控制.pptx -
Java程序设计-3-流程控制教学文案.ppt
2020-11-08 22:28:16Java程序设计-3-流程控制;程序;一个例子;3.1 句块和空白;3.1.1 语句;3.1.2 语句块;3.1.3空白;3.2逻辑判断和循环控制;3.2.1 条件判断与决策 ;3.2.1 条件判断与决策(cont;3.2.1 条件判断与决策(cont;3.2.1 条件判断与... -
Java中的流程控制
2021-03-10 04:44:52一、Java中的流程控制程序执行的控制流程分为三种,也称为三种结构,分别是:顺序结构、分支结构和循环结构。1、顺序结构顺序结构指的是程序执行按照代码的编写顺序,依次从上往下开始执行,直到程序结束。程序的... -
Java流程控制语句-顺序结构
2019-09-28 22:48:34顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的 举例 /* * 顺序结构:从上往下,依次执行 */ public class OrderDemo { public ... -
基于java中的流程控制语句总结(必看篇)
2020-08-30 06:42:48下面小编就为大家带来一篇基于java中的流程控制语句总结(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧