Java选择结构与循环结构的使用详解
作者:Teror
循环结构是指在程序中需要反复执行某个功能而设置的一种程序结构。它由循环体中的条件,判断继续执行某个功能还是退出循环,选择结构用于判断给定的条件,根据判断的结果判断某些条件,根据判断的结果来控制程序的流程
前言
大家了解了Java中的变量、数据类型和运算符后,小编给大家介绍使用选择结构和循环结构解决问题。
一.选择结构
1.1 if选择结构的四种格式
1.1.1 基本if语句—单分支判断
if(比较表达式){ 语句体; } /* 执行流程是:判断比较表达式中的值,是true还是false, 如果是true就执行大括号内的语句体,执行完语句体后会继续向下执行 如果是false,就直接向下执行,不会执行大括号里面的语句体 */
1.1.2 基本if语句—双分支判断
if(表达式){ 语句体1 }else{ 语句体2 } 语句3 /* 执行流程是:判断比较表达式中的值,是true还是false, 如果是true就执行语句1,执行完语句体1后会向下执行语句3; 如果是false就执行else里面的语句2,执行完语句体2后继续向下执行语句3; */
1.1.3 多重if语句
if(表达式1){ 语句1 }else if(表达式2){ 语句2 } ...... else{ 语句n+1 } 语句n+2 /* 执行流程是:判断比较表达式中的值,是true还是false, 如果是true执行语句1,执行完语句体1后会向下执行语句n+2 如果是false就继续判断表达式2的值是true还是false, 是true就执行比较表达式2后的语句体2, 是false就继续向下在做比较表达式n的判断, 直到所有else if里面的比较表达式值都是false,就执行else后的语句体 */
1.1.4 嵌套if语句
if(表达式1){ 语句1 if(表达式2){ 语句2 }else{ 语句3 } }else{ 语句4 } 语句5 /* 执行流程是:判断比较表达式中的值,是true还是false, 如果是true执行语句1 再判断比较表达式2中的值, 如果是true就执行语句2,执行完语句体2后会向下执行语句5 如果是false就执行语句3,执行完语句体3后会向下执行语句5 如果是false就执行语句4,执行完语句体4后会向下执行语句5 */
注意事项
- 比较表达式不管简单还是复杂,结果都是boolean类型;
- if语句控制的语句体如果是一条语句,大括号可以省略。
- else后面如果没有if,是不会出现比较表达式的。
- 四种if语句其实都是一个语句,只要有一个执行其他的都不执行。
1.2 switch选择结构
switch(表达式){ case 值1: 语句1; break; case 值2: 语句2; break; ...... default: 语句n+1; break; } /* switch是关键字,声明一个switch语句。 switch支持的数据类型: 基本数据类型:byte, short, char, int 包装数据类型:Byte, Short, Character, Integer 枚举类型:Enum 字符串类型:String(Jdk 7+ 开始支持) case:后面的值就是要和表达式进行比较的值; break:表示程序到这里中断,跳出switch语句; default:如果所有的情况都不匹配,就执行这里,相当于if语句中的else; */
switch语句执行流程
- 首先计算表达式的值。
- 和每一个case进行匹配,如果有就执行对应的语句体,看到break就结束。
- 如果没有匹配,就执行default的语句体n+1。
switch选择结构支持的数据类型
- jdk1.5以前,只能是byte、short、int、char类型
- jdk1.5以后,引入了枚举类型(enum类型)、包装数据类型(Byte、Short、Integer、Character)
- jdk1.7以后,支持String类型,String类有一个hasCode方法,结果也是返回int类型
实际上,Switch在底层实现,目前只支持整型数据类型
注意事项
- case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的
- default可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。
- 遇到break或执行到最后就结束判断。
二.循环结构
2.1 while循环结构
public static void main(String[] args){ //基本循环体: int i=0; while(i<=10){ System.out.println(i); i++; //输出结果:0,1,2,3,4,5,6,7,8,9,10 } | where(循环条件){ 循环体语句; } //扩展循环体: where(循环条件){ 循环体语句; 控制条件语句(break;continue;) }
2.2 do-while循环结构
//基本循环体: public static void main(String[] args){ int i=0; do{ System.out.println(i); i++; //输出结果:0,1,2,3,4,5,6,7,8,9,10 }while(i>=10) } do{ 循环体语句 }while(循环条件) //扩展循环体: do{ 循环体语句 控制条件语句(break;continue;) }while(循环条件)
2.3 for循环结构
public static void main(String[] args){ for(int i=0;i<=10;i++){ System.out.println(i); //输出结果:0,2,3,4,5,6,7,8,9,10 } } for(初始化;条件判断;迭代部分){ 循环体语句; } 执行流程: 1:执行初始化语句 2:执行判断条件语句 如果这里是true,就继续 如果这里是false,循环就结束 3:执行循环体语句 4:执行迭代部分语句 5:回到判断条件
2.4 for-each循环结构
public static void main(String[] args){ int[] array = {1,2,3,4,5,6,7}; for(int i : array){ System.out.println(i); //输出结果:1,2,3,4,5,6,7 } } for(元素类型 元素名称 : 遍历对象){ 循环操作; } }
注意事项
- 判断条件语句无论简单还是复杂,结果是boolean类型。
- 循环体语句如果是一条,可以省略大括号,但是不建议。
- 有分号就没有左大括号,有左大括号就没有分号。
- 一定要修改控制条件,否则会出现死循环。
- 在解决问题时,对于循环次数确定的情况,通常选用for循环结构;对于循环结构次数不确定的情况,通常选用while和do-while循环结构。
- for-each增强for循环在遍历数组过程中不能修改数组中某元素的值。
- for-each仅适用于遍历,不涉及有关索引(下标)的操作。
执行循序
- while循环结构:先进行条件判断,再进行循环体。如果条件不成立,退出循环。
- do-while循环结构:先进行条件判断,循环体至少执行一次。
- for循环结构:先执行初始化部分,再进行条件判断,然后执行循环体,最后进行迭代部分的计算。如果条件不成立,跳出循环。
- for-each循环结构:先定义变量,在把数组赋值给变量,在进行遍历。
三.控制语句
(1)break:中断的意思
A:用在循环和switch语句中,离开此应用场景无意义。
B:作用
- a:跳出单层循环
- b:跳出多层循环,需要标签语句的配合
(2)continue:继续
A:用在循环中,离开此应用场景无意义。
B:作用
- a:跳出单层循环的一次,可以继续下一次
(3)return:返回
A:用于结束方法的。
B:一旦遇到return,方法就不会在继续往后执行。
小结:在循环结构中break语句用于终止某个循环,程序跳转到循环体外的下一条语句.
continue语句用于跳出本次循环,进入下一次循环的语句
以上就是Java选择结构与循环结构的使用详解的详细内容,更多关于Java 选择结构 循环结构的资料请关注脚本之家其它相关文章!