Java流程控制
用户交互Scanner
通过Scanner类获取用户的输入来实现程序员和人的交互。
注意:使用Scanner类需要导包 java.util.Scanner
基本语法:
Scanner sc = new Scanner(System.in);
通过使用Scanner的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext() 与hasNextLine()判断是否还有输入的数据。
Scanner对象
-
next():
-
一定要读取到有效字符后才可以结束输入
-
对输入的有效字符之前遇到的空白,next()方法会自动将其去掉。
-
只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
-
next()不能得到带有空格的字符串。
-
-
nextLine():
-
以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符。
-
可以获得空白。
-
顺序结构
-
Java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行。
-
顺序结构是最简单的算法结构。
-
语句与语句之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。
选择结构
if单选择结构
需要进行一个判断
语法:
if(条件语句){ 执行语句 }
equals :判断字符串是否相等。
if双选择结构
同一件事需要进行两个结果相反或不同的判断
if(条件语句){ 结果为true时的执行语句 } else{ 结果为false时的执行语句 }
if多选择结构
同一件事需要进行多个结果不同的判断
if(条件语句1){ 结果为true时的执行语句 } else if(条件语句2){ 结果为true时的执行语句 } ...... else if(条件语句n){ 结果为true时的执行语句 } else{ 结果为false时的执行语句 }
if语句至多有一个else语句,else语句在所在的所有的else if 语句之后。
if语句可以有若干个else if 语句,它们必须在else 之前
一旦其中有一个条件语句结果为true,除了这个条件语句所在的if判断语句或者else if 判断语句外,其他判断语句包括else 语句都将跳过执行。
嵌套的if结构
使用嵌套的 if ....else 语句是合法的,也就是说你可以在另一个 if 或者 else if 语句中使用 if 或者else if 语句
语法
if(条件语句1){ 条件语句1结果为true时的执行语句 if(条件语句2){ 条件语句2结果为true时的执行语句 } }
switch多选择结构
多选择结构还有一个实现方式就是switch case语句
switch case语句判断一个变量与一系列值中的某个值是否相等,每个值称为一个分支。
switch 语句中的变量类型可以是:
-
byte、short、int、char。
-
从Java SE 7开始,switch支持String类型
-
case标签必须为字符串常量或字面量。
语法:
switch(expression){ case vaue 1: 执行语句 break; case vaue 2: 执行语句 break; ... case vaue n: 执行语句 break; default : 执行语句 }
循环结构
while循环
-
while语句如果不满足条件,则不能进入循环
-
while循环是最基本的循环,结构为:
while(条件语句){ 执行的循环语句 }
-
只要条件语句结果为true,循环会一直执行下去。
-
大多数情况下是会让循环停止下来的,需要一个让表达式失效的方式来结束循环
-
少部分情况下需要循环一直执行下去,比如服务器的请求响应监听
-
循环条件一直为true会造成死循环,应尽量避免死循环。死循环会影响程序性能或者造成程序卡死崩溃
do.....while循环
-
do.....while循环即使不满足条件,也至少执行一次
-
语法结构
do{ 循环语句 }while(条件语句)
while和do.....while的区别
do.....while先执行后判断,while先判断后执行
while语句如果不满足条件,则不能进入循环;do.....while循环即使不满足条件,也至少执行一次
for 循环
-
for循环使一些循环结构便得更加简单
-
for循环语句是支持迭代的一种通用结构,是最有效、最灵活的通用结构
-
for循环执行的次数是在执行前就确定的。语法结构:
for(初始化表达式;条件表达式;操作表达式){ 循环语句 }
for循环说明
-
最先执行初始化步骤,可以声明一种类型,可以初始化一个或多个循环控制变量,也可以是空语句。
-
执行条件表达式。如果为true,循环语句被执行;如果为false,则循环终止。执行一次后,更新循环控制变量,再次执行条件表达式,重复执行上述过程,
-
增强for 循环
语法格式 :
for(声明语句 : 表达式){ 循环语句 }
声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等
表达式:表达式是要访问的数组名,或者是返回值为数组的方法。
brreak & continue
-
在任何循环语句的主体部分,均可使用break控制循环的流程。break用于强行退出循环,不必执行循环中剩余的语句。(break语句也在switch语句中使用)
-
continue语句在循环语句体中,用于终止某次循环过程,即跳出循环体中尚未执行的语句,接着进行下一次是否执行循环的判断。