顺序结构
-
java的基本的结构
-
如果没有特别指明,代码自上而下依次执行
-
最简单的算法结构
-
是由若干个依次执行的处理步骤组成的,是任何一个算法都离不开的基本结构
选择结构
作用
-
根据一个条件判断是否成立,成立才去执行,if...else...相当于如果...否则...
-
equal()方法-----判断字符串是否相等
分类
-
if单选择结构
-
if双选择结构
-
if多选择结构
-
嵌套的if结构
-
switch多选择结构
if单选择结构
语法
if(布尔表达式){ //如果布尔表达式成立则执行的语句 }
-
如果布尔表达式成立,则执行if语句块中的待执行语句,否则跳过该if语句块
if双选择结构
语法
if(布尔表达式){ //如果布尔表达式为true执行的语句 }else{ //如果布尔表达式为false执行的语句 }
-
根据布尔表达式来判断需要执行的语句,且只会执行其中一个
if多选择结构
语法
if(布尔表达式1){ //如果布尔表达式1为true执行的语句 }else if(布尔表达式2){ //如果布尔表达式2为true执行的语句 }else if(布尔表达式3){ //如果布尔表达式3为true执行的语句 }else if(布尔表达式4){ //如果布尔表达式4为true执行的语句 }else{ //如果以上布尔表达式都不为true执行的语句 }
-
用来应对不只有两个选择的问题
-
if 语句可以有若干个 else if 语句,它们必须在 else 语句之前
-
一旦其中一个 else if 语句检测为 true,其他的 else if 以及 else 语句都将跳过执行
-
if 语句至多有 1 个 else 语句,else 语句在所有的 else if 语句之后
嵌套的if结构
语法
if(布尔表达式 1){ 如果布尔表达式 1的值为true执行代码 if(布尔表达式 2){ 如果布尔表达式 2的值为true执行代码 } }
-
else if()也可以像if语句一样嵌套
switch多选择结构
语法
switch(expression){ case value : //语句 break; //可选 case value : //语句 break; //可选 //你可以有任意数量的case语句 default : //可选 //语句 }
规则
-
switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支
-
switch 语句中的变量类型可以是: byte、short、int 或者 char。从 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 语句
-
switch case 执行时,一定会先进行匹配,匹配成功返回当前 case 的值,再根据是否有 break,判断是否继续输出,或是跳出判断
-
如果 case 语句块中没有 break 语句时,JVM 并不会顺序输出每一个 case 对应的返回值,而是继续匹配,匹配不成功则返回默认 case
-
case穿透:如果 case 语句块中没有 break 语句时,匹配成功后,从当前 case 开始,后续所有 case 的值都会输出
循环结构
定义
-
用于将同样的操作多次执行
-
循环之间可以嵌套,即外面一层循环一次,里面一层循环一遍
分类
-
while循环
-
do...while循环
-
for循环
-
增强for循环(foreach)
while循环
语法结构
while(布尔表达式){ //循环内容 }
-
最为基本的循环,只要布尔表达式为true,就会一直执行下去,若为false则不能进入循环
-
但在大多数情况下,会让循环停止下来,需要一个让表达式失效的方式结束循环
-
只要少数的情况下会一直进行循环,比如服务器的请求响应监听等
-
一直进行下去的循环称为死循环,应尽量避免
do...while循环
语法结构
do{ //循环内容 }while(布尔表达式);
-
即使条件不满足,也要进行一次循环
-
与while循环的区别:
-
while是先判断后循环,do...while是先循环一次后再判断
-
do...while总是会保证循环体至少执行一次,这是两者的主要差别
-
for循环
语法结构
for(初始化; 布尔表达式; 更新) { //代码语句 }
-
是支持迭代的一种通用结构,是最有效,最灵活的循环结构
-
且for循环执行的次数在开始前就已经确定了
-
idea: For循环快捷操作
int[] array = new int[]; array.length.for//快捷操作 或 itar
foreach
语法结构
for(声明语句 : 表达式) { //代码句子 }
-
主要用于数组或集合
-
声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等
表达式:表达式是要访问的数组名,或者是返回值为数组的方法
-
快捷调用:itar
-
自动匹配最近的数组或集合的数据,然后创建增强for循环
-
break
-
break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块
-
在多层循环中,break 跳出最里层的循环,并且继续执行该循环下面的语句
continue
-
continue 适用于任何循环控制结构中。作用是终止某次循环,让程序立刻跳转到下一次循环的迭代。
-
在 for 循环中,continue 语句使程序立即跳转到更新语句
-
在 while 或者 do…while 循环中,程序立即跳转到布尔表达式的判断语句
Scanner
作用
-
通过Scanner类来获取用户的输入
基本语法
Scanner sc = new Scanner(System.in);
方法
-
hasNext----判断是否还有一段输入
-
hasNextLine------判断是否还有一行输入
-
next()-----获取输入的字符串
-
一定要读取到有效字符才会结束输入
-
对输入有效字符之前遇到的空白,next()会将其自动去掉
-
只有输入有效字符后才能将其后面输入的空白符作为分隔符或结束符
-
next()不能得到带有空格的字符串
-
-
nextLine()---获取输入的一行字符串(常用)
-
一回车键作为结束符,可以返回回车之前的所有字符
-
可以获得空白符
-
-
从键盘接收数据------nextXxx()
-
“Xxx”代表要接受的数据类型
-
-
判断从键盘输入是否还右下一个该数据类型-----hasNextXxx()
-
"Xxx"代表要判断的数据类型
-
注意
-
I/O流使用如果不关闭,则会一直占用资源,要养成代码结尾使用close方法关闭I/O流的习惯,Scanner属于I/O流
目录