Java教程

Java流程控制

本文主要是介绍Java流程控制,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Scanner对象

  • 可以通过Scanner类来获取用户的输入
  • 基本语法:
Scanner s = new Scanner(System,in);
  • 通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()方法判断是否还有输入的数据
  • next():
  1. 一定要读取到有效字符后才可以结束输入。
  2. 对输入有效字符之前遇到的空白,next()方法会自动将其去掉。
  3. 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
  4. next()不能得到带有空格的字符串。
  • nextLine():
  1. 以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符。
  2. 可以获得空白。

控制流

if-else

if-else 语句是控制程序执行流程最基本的形式。 其中 else 是可选的,因此可以有两种形式的 if。代码示例:

if(Boolean-expression) 
	“statement” 

if(Boolean-expression) 
	“statement”
else
  “statement”

布尔表达式(Boolean-expression)必须生成 boolean 类型的结果,执行语句 statement 既可以是以分号 ; 结尾的一条简单语句,也可以是包含在大括号 {} 内的的复合语句 —— 封闭在大括号内的一组简单语句。

注解else if 并非新关键字,它仅是 else 后紧跟的一条新 if 语句。

迭代语句

whiledo-whilefor 用来控制循环语句(有时也称迭代语句)。只有控制循环的布尔表达式计算结果为 false,循环语句才会停止。

while

while 循环的形式是:

while(Boolean-expression) 
  statement

执行语句会在每一次循环前,判断布尔表达式返回值是否为 true

do-while

do-while 的格式如下:

do 
	statement
while(Boolean-expression);

whiledo-while 之间的唯一区别是:即使条件表达式返回结果为 falsedo-while 语句也至少会执行一次。while 循环体中,如布尔表达式首次返回的结果就为 false,那么循环体内的语句不会被执行。

for

for 循环可能是最常用的迭代形式。 该循环在第一次迭代之前执行初始化。随后,它会执行布尔表达式,并在每次迭代结束时,进行某种形式的步进。for 循环的形式是:

for(initialization; Boolean-expression; step)
  statement

初始化 (initialization) 表达式、布尔表达式 (Boolean-expression) ,或者步进 (step) 运算,都可以为空。每次迭代之前都会判断布尔表达式的结果是否成立。一旦计算结果为 false,则跳出 for 循环体并继续执行后面代码。 每次循环结束时,都会执行一次步进。

无限循环

 for(; ;) { // 无限循环 }

它与 while(true) 无异,使用哪种完全取决于你的编程品味。

逗号操作符

在 Java 中逗号运算符(这里并非指我们平常用于分隔定义和方法参数的逗号分隔符)仅有一种用法:在 for 循环的初始化和步进控制中定义多个变量。我们可以使用逗号分隔多个语句,并按顺序计算这些语句。注意:要求定义的变量类型相同。

for-in 语法

Java 5 引入了更为简洁的“增强版 for 循环”语法来操纵数组和集合。

for-in 无需你去创建 int 变量和步进来控制循环计数。代码示例:

for(float x : f) {

这条语句定义了一个 float 类型的变量 x,继而将每一个 f 的元素赋值给它。

  • 任何一个返回数组的方法都可以使用 for-in 循环语法来遍历元素。

  • for-in 循环适用于任何可迭代(iterable)的 对象。

switch

switch 有时也被划归为一种选择语句。根据整数表达式的值,switch 语句可以从一系列代码中选出一段去执行。它的格式如下:

switch(integral-selector) {
	case integral-value1 : statement;   break;
	case integral-value2 : statement;	break;
	case integral-value3 : statement;	break;
	case integral-value4 : statement;	break;
	case integral-value5 : statement;	break;
	// ...
	default: statement;
}

其中,integral-selector (整数选择因子)是一个能够产生整数值的表达式,switch 能够将这个表达式的结果与每个 integral-value (整数值)相比较。若发现相符的,就执行对应的语句(简单或复合语句,其中并不需要括号)。若没有发现相符的,就执行 default 语句。

在上面的定义中,大家会注意到每个 case 均以一个 break 结尾。这样可使执行流程跳转至 switch 主体的末尾。这是构建 switch 语句的一种传统方式,但 break 是可选的。若省略 break, 会继续执行后面的 case 语句的代码,直到遇到一个 break 为止。通常我们不想出现这种情况,但对有经验的程序员来说,也许能够善加利用。注意最后的 default 语句没有 break,因为执行流程已到了 break 的跳转目的地。当然,如果考虑到编程风格方面的原因,完全可以在 default 语句的末尾放置一个 break,尽管它并没有任何实际的作用。

switch 语句是一种实现多路选择的干净利落的一种方式(比如从一系列执行路径中挑选一个)。但它要求使用一个选择因子,并且必须是 intchar 那样的整数值。(Java 7 增加了在字符串上 switch 的用法。)

请注意 case 语句能够堆叠在一起,为一段代码形成多重匹配,即只要符合多种条件中的一种,就执行那段特别的代码。这时也应该注意将 break 语句置于特定 case 的末尾,否则控制流程会继续往下执行,处理后面的 case

break 和 continue

在任何迭代语句的主体内,都可以使用 breakcontinue 来控制循环的流程。其中,break 表示跳出当前循环体。而 continue 表示停止本次循环,开始下一次循环。

注意continue 语句可将控制权移回循环的顶部,而不会执行 continue 之后的任何操作。

这篇关于Java流程控制的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!