流程控制
用户交互Scanner
- 导入java.util.Scanner包,通过Scanner类我们能获取用户输入
- 基础语法
Scanner s = new Scanner(System.in);
- 我们可以通过Scanner类的next()和nextLine()方法获取用户输入,读取前使用hasNext()和hasNextLine()方法判断是否还有输入数据
- next()方法一定要读取到有效字符才会结束,会自动删除有效字符前的空白,把有效字符之后的空白作为结束符或分隔符,next()不能得到带有空格的字符串
- nextLine()方法以Enter为结束符,可以获取到输入回车之前的所有字符,可以获取空白
- hasNext()方法还有相应的判断数据类型的方法,例如判断int型的方法hasNextInt(),其他类似
- 使用完Scanner后使用close方法关闭Scanner
顺序结构
- 顺序结构是最简单的结构
- java的基本结构就是顺序结构,按照顺序一行一行的执行语句
- 它是任何一个算法都离不开的基本算法结构
选择结构
-
if单选结构
- 程序运行时需要进行一次判断就使用if
if(布尔表达式){ //表达式为true时执行的语句 }
-
if双选结构
- 程序运行时需要进行两次判断就使用if-else结构
if(布尔表达式){ //表达式为true时执行的语句 }else{ //表达式为false时执行的语句 }
-
if多选结构
- 程序运行时需要进行多次判断就使用if-else-if结构
if(布尔表达式1){ //表达式1为true时执行的语句 }else if(布尔表达式2){ //表达式2为true时执行的语句 }else if(布尔表达式3){ //表达式3为true时执行的语句 }else if(布尔表达式4){ //表达式4为true时执行的语句 }else{ //以上表达式都不为true时执行的语句 }
- 一个if语句至多有一个else语句,else语句在所有if else语句之后
-
if嵌套结构
- 程序运行时需要进行多层判断就使用if嵌套结构
if(布尔表达式){ //表达式为true时执行的语句 if(布尔表达式2){ //表达式2为true时执行的语句 } }
-
switch多选结构
- switch case语句是判断一个值是否与一系列值中的某一个相等,每个值是一个分支
switch(变量名){ case 值1 : 语句1 ; break; case 值2 : 语句2 ; break; case 值3 : 语句3 ; break; default:语句4 ; }
- case后的值可以是byte,short,int,char,String
- break可写可不写,写就只执行符合的值相应的语句,不写就执行从符合的值开始的之后所有语句直到遇到break或switch语句结束
- default语句是所有值不匹配执行语句
循环结构
-
while循环
- 最基本的循环
while(布尔表达式){ //循环内容 }
- 只要表达式为true,循环就会一直运行
- 但大多数情况是会让循环停下来的,我们需要一个让表达式生效方法来停止循环
- 少部分情况需要循环一直执行,例如监听事件
- 循环条件一直为true就会造成死循环,编程中要尽量避免死循环
-
do-while循环
- while如果条件不满足就直接停止,do-while循环至少会执行一次
do{ //循环内容 }while(布尔表达式)
- while先判断后执行,do-while先执行后判断
-
for循环
- for循环是支持迭代的、最有效、最灵活的循环结构
for(初始化;布尔表达式;更新){ //循环内容 } //循环输出1-100 for(int i = 1;i<=100;i++){ Sstem.out.print(i); }
-
循环控制
- break、continue
- break用于跳出循环,常与if语句一起用,直接结束整个循环语句
- continue用于跳出本次循环,跳过本次循环,继续下一次循环