Java基础【之】循环、流程控制 (if else、whitch case、while、do while、for...i、foreach、多层循环与退出)
1.默认顺序执行
代码逻辑,默认从入口函数进入,从上到下依次执行,然后程序退出
public static void main ( String[ ] args) {
int a = 999 ;
hello ( ) ;
whatsYourName ( ) ;
System. out. println ( a) ;
}
public static void hello ( ) {
System. out. println ( " hello " ) ;
}
public static void whatsYourName ( ) {
System. out. println ( " whats your name" ) ;
}
2.分支控制
if else
通过判断后,指定对应逻辑区域(如果、否则、否则…) if else ,经过判断逻辑后,只会进入其中某一块代码区域 if(){} else{}
if(){} else if(){} else{}
形式1:单一判断,if else 形式2:多层判断,最终流到 else 逻辑 形式3:多层判断,没有流到 else 逻辑
public static void main ( String[ ] args) {
int a = 999 ;
if ( a < 10 ) {
System. out. println ( "a < 10" ) ;
} else {
System. out. println ( "a > 10" ) ;
}
if ( a < 10 ) {
System. out. println ( "a < 10" ) ;
} else if ( a < 50 ) {
System. out. println ( "a < 50" ) ;
} else {
System. out. println ( "~全部不满足~" ) ;
}
if ( a < 10 ) {
System. out. println ( "a < 10" ) ;
} else if ( a < 100 ) {
System. out. println ( "a < 100" ) ;
} else if ( a < 100000 ) {
System. out. println ( "a < 100000" ) ;
} else {
System. out. println ( "~全部不满足~" ) ;
}
}
switch case
语法 switch(表达式){ case {$值}:{$逻辑代码}; break; case {$值}:{$逻辑代码}; break; default:{$逻辑代码}; break; }
switch(表达式)中表达式的值必须是(byte,short,char,int,枚举 (jdk 5.0),String (jdk 7.0);) case中的值必须是常量,不能是变量名或不确定的表达式值; 同一个switch语句,case中的常量值互不相同; break用来在执行完一个case后跳出switch语句块;没有break,自己试一下; default子句是选的。没匹配的case时执行default
public static void main ( String[ ] args) {
int a = 50 ;
switch ( a) {
case 50 :
System. out. println ( 50 ) ;
break ;
case 100 :
System. out. println ( 100 ) ;
break ;
default :
System. out. println ( "~没找到对应数字~" ) ;
break ;
}
String b = "王" ;
switch ( b) {
case "赵" :
System. out. println ( 50 ) ;
break ;
case "钱" :
System. out. println ( 100 ) ;
break ;
case "孙" :
System. out. println ( 100 ) ;
break ;
default :
System. out. println ( "~没找到对应姓氏~" ) ;
break ;
}
}
3.循环
while
语法:while({$条件}) { {$逻辑代码} }
通过判断条件,存在 死循环与非死循环 死循环:程序无法退出,只能等待程序崩溃 非死循环:程序通过 判断你条件退出;或者通过break退出;
public static void main ( String[ ] args) {
int a = 10 ;
while ( a != 0 ) {
a = a - 1 ;
System. out. println ( "1----" + a) ;
}
while ( true ) {
a = a + 1 ;
System. out. println ( "2----" + a) ;
if ( a > 100 ) {
break ;
}
}
while ( true ) {
System. out. println ( "死循环:" + a) ;
}
}
do while
语法:do{ {$逻辑代码} } while( {$循环条件} )
与while一样,只不过,先执行代码,后判断条件
public static void main ( String[ ] args) {
int a = 10 ;
do {
a = a - 1 ;
System. out. println ( "1----" + a) ;
}
while ( a != 0 ) ;
do {
a = a + 1 ;
System. out. println ( "2----" + a) ;
if ( a > 100 ) {
break ;
}
} while ( true ) ;
do {
System. out. println ( "死循环:" + a) ;
} while ( true ) ;
}
for i
语法 for(初始化条件;循环判断条件;循环结束后执行逻辑) { 循环体(逻辑代码)}
仍然存在死循环情况(偶尔人为脑残~)
public static void main ( String[ ] args) {
for ( int i = 0 ; i < 10 ; i++ ) {
System. out. println ( "非死循环----" + i) ;
}
for ( int i = 0 ; i != - 1 ; i++ ) {
System. out. println ( "死循环----" + i) ;
}
}
foreach
语法:for ( 对象 : 集合) { }
JDK1.5+提供的便捷遍历集合的语法
public static void main ( String[ ] args) {
int a[ ] = new int [ ] { 1 , 2 , 3 , 4 , 5 , 6 } ;
for ( int o : a) {
System. out. println ( o) ;
}
}
4.多层循环与主动退出(return、break、contuinue)
return; 退出当前方法,跟循环没关系,退出的是方法 break; 退出当前 {} 循环 (退出一层大括号) continue; 结束本次循环,跟大括号没关系
循环代码
public static void main ( String[ ] args) {
for ( int i = 0 ; i < 2 ; i++ ) {
System. out. println ( "i=" + i) ;
for ( int j = 10 ; j < 12 ; j++ ) {
System. out. println ( "i=" + i + " ; j=" + j) ;
for ( int k = 20 ; k < 22 ; k++ ) {
System. out. println ( "i=" + i + " ; j=" + j + " ; k=" + k) ;
}
}
}
}
使用 continue
continue; 结束本次循环,跟大括号没关系 注意对比输出结果
public static void main ( String[ ] args) {
for ( int i = 0 ; i < 2 ; i++ ) {
if ( i == 0 ) {
continue ;
}
System. out. println ( "i=" + i) ;
for ( int j = 10 ; j < 12 ; j++ ) {
if ( j == 10 ) {
continue ;
}
System. out. println ( "i=" + i + " ; j=" + j) ;
for ( int k = 20 ; k < 22 ; k++ ) {
if ( k == 20 ) {
continue ;
}
System. out. println ( "i=" + i + " ; j=" + j + " ; k=" + k) ;
}
}
}
}
使用 break
break; 退出当前 {} 循环 (退出一层大括号) 注意对比输出结果
public static void main ( String[ ] args) {
System. out. println ( "---------------------------------------------------------------------" ) ;
for ( int i = 0 ; i < 2 ; i++ ) {
System. out. println ( "i=" + i) ;
if ( i == 0 ) {
break ;
}
for ( int j = 10 ; j < 12 ; j++ ) {
System. out. println ( "i=" + i + " ; j=" + j) ;
for ( int k = 20 ; k < 22 ; k++ ) {
System. out. println ( "i=" + i + " ; j=" + j + " ; k=" + k) ;
}
}
}
System. out. println ( "---------------------------------------------------------------------" ) ;
for ( int i = 0 ; i < 2 ; i++ ) {
System. out. println ( "i=" + i) ;
for ( int j = 10 ; j < 12 ; j++ ) {
if ( j == 10 ) {
break ;
}
System. out. println ( "i=" + i + " ; j=" + j) ;
for ( int k = 20 ; k < 22 ; k++ ) {
System. out. println ( "i=" + i + " ; j=" + j + " ; k=" + k) ;
}
}
}
System. out. println ( "----------------------------------------------------------------------" ) ;
for ( int i = 0 ; i < 2 ; i++ ) {
System. out. println ( "i=" + i) ;
for ( int j = 10 ; j < 12 ; j++ ) {
System. out. println ( "i=" + i + " ; j=" + j) ;
for ( int k = 20 ; k < 22 ; k++ ) {
if ( k == 20 ) {
break ;
}
System. out. println ( "i=" + i + " ; j=" + j + " ; k=" + k) ;
}
}
}
System. out. println ( "----------------------------------------------------------------------" ) ;
}
使用 return
return; 退出当前方法,跟本次循环没关系,跟 {} 循环也没关系,退出的是当前执行的方法 注意对比输出结果
public static void main ( String[ ] args) {
System. out. println ( "------------------------------------------" ) ;
for ( int i = 0 ; i < 2 ; i++ ) {
System. out. println ( "i=" + i) ;
if ( i == 0 ) {
return ;
}
for ( int j = 10 ; j < 12 ; j++ ) {
System. out. println ( "i=" + i + " ; j=" + j) ;
for ( int k = 20 ; k < 22 ; k++ ) {
System. out. println ( "i=" + i + " ; j=" + j + " ; k=" + k) ;
}
}
}
System. out. println ( "------------------------------------------" ) ;
for ( int i = 0 ; i < 2 ; i++ ) {
System. out. println ( "i=" + i) ;
for ( int j = 10 ; j < 12 ; j++ ) {
if ( j == 10 ) {
return ;
}
System. out. println ( "i=" + i + " ; j=" + j) ;
for ( int k = 20 ; k < 22 ; k++ ) {
System. out. println ( "i=" + i + " ; j=" + j + " ; k=" + k) ;
}
}
}
System. out. println ( "------------------------------------------" ) ;
for ( int i = 0 ; i < 2 ; i++ ) {
System. out. println ( "i=" + i) ;
for ( int j = 10 ; j < 12 ; j++ ) {
System. out. println ( "i=" + i + " ; j=" + j) ;
for ( int k = 20 ; k < 22 ; k++ ) {
if ( k == 20 ) {
return ;
}
System. out. println ( "i=" + i + " ; j=" + j + " ; k=" + k) ;
}
}
}
System. out. println ( "------------------------------------------" ) ;
}
《上一篇:比较、运算、位运算》
《练习题:输出一个菱形》
《目录:Java渐进式学习》
《幕》
留白 —<老吉> ~ 今 ~ ❀ ~ ❀❀❀❀❀❀❀❀❀❀ ❀❀❀❀❀❀❀❀❀❀ ❀❀❀❀❀❀❀