------ Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
< 今日心情 >good good study,day day up!^_^
一、 程序流程控制
1.判断结构
判断语句格式:
if(条件表达式)
{
执行语句
}
else if(条件表达式){执行语句}……else
{执行语句}具体执行那个语句以跳楼式判断,在哪个楼层被接住(满足了条件表达式),就在哪个楼层庆祝(就执行哪个楼层的语句),一旦人物被接住,就不需要继续向下判断;else以前都不满足,则最后的语句一定执行(没有最后的else那么这个人就死定了^_^)。else if根据需要可以写多个或者不写,else只能有一个或者不写。
编写如下代码:运行结果如下:class IfDemo { public static void main(String[] args) { int i=2; if(i>0&&i<2) { System.out.println("我在一楼获救了"); } else if(i>2&&i<6) { System.out.println("我在二楼获救了"); } else if(i>6&&i<8) { System.out.println("我在三楼获救了"); } else { System.out.println("还好,最后获救了"); } System.out.println("我死啦!"); } }
![]()
注:尝试改变i的值,查看不同的结果,也可以尝试改变楼层的结构
结果发现,人物虽然在else中获救,但是最后还是喊道:“我死啦!”我们可以这样理解,无论人物在哪里获救,或者死亡,都会被运出楼外。其实if判断语句只是“触发某个事件”,并不阻止程序的运行。
根据楼层的不同,判断语句可以分为3中结构:if结构if……else结构if……else if……else结构
2.选择结构
switch选择格式:switch(表达式)
{
case 取值1:执行语句;break;case 取值2:执行语句;break;…...default:执行语句;break;
}
选择结构就像从楼上往下丢蘑菇,每个楼层都判断一次这个蘑菇是否是自己要的,不同于判断语句,选择结构只对蘑菇本身进行判断,并且是与具体的值是否绝对相等的判断,一旦相等就执行语句,遇到break停在向下判断,否则继续向下判断。
编写代买:结果如下:class switchDemo { public static void main(String[] args) { String moGu="1kg"; switch(moGu) { case "100kg": System.out.println("我有100kg重"); break; case "70kg": System.out.println("我有70kgkg重"); break; case "1kG": System.out.println("我有1kG重"); break; case "30kg": System.out.println("我有30kg重"); break; case "1kg": System.out.println("我有1kg重"); break; default: System.out.println("我已经腐烂了"); break; } } }
![]()
注:switch语句选择的类型只有四种:byte,short,int ,char。本例String也能通过。
default类似于else,case中没有相应的等值时或没有遇到break时跳转的default中执行其中的语句。3.循环结构
在判断结构中,满足条件后会运行方法体中的语句(对应大括号中的语句)执行一次。而在循环中,执行完毕之后会回头继续判断,满足条件就再次执行方法体中的语句,然后再判断……直到条件不满足。循环的方法体又称之为循环体。
while循环格式:
while(条件表达式)
{
执行语句;
}
do while循环格式:
do
{
执行语句;
}while(条件表达式)
do while特点是条件无论是否满足,循环体至少被执行一次。
编写代码:
结果如下:class whileDemo { public static void main(String[] args) { int i=1; while(i++<5) { System.out.println("Hello World!"); } } } class doWhileDemo { public static void main(String[] args) { int i=1; do { System.out.println("Hello World!"); }while (i++<5); } }
由于do while先执行后判断,结果确实比while多输出了一条“hello world!”
for循环结构;
for(初始化表达式;循环条件表达式;循环后的操作表达式)
{
执行语句;
}
注:只要满足格式,不管其中是否有关系,编译都能通过
编译代码:
结果如下;class forDemo { public static void main(String[] args) { for(int i=0;i<5;i++) { System.out.println("Hello World!"); } System.out.println("------------------"); int j=0; for(int k=0;j<5;System.out.println("my god!")) { System.out.println("Hello World!"); j++; } } }
break在循环体中的应用,表示结束循环,跳出循环。
continue在循环中的应用,结束本次循环,进入下一次循环。
循环嵌套应用,九九乘法表
代码如下:
结果如下:class forAndFor { /*分析 控制台打印数据是逐行打印,顺序是从左到右打印的。 先看同一行,发现都有一个不变的数字,与之相乘的数字在从1开始经过每列时都加了1,最后与不变的数字相同。 用一个变量i来代表行不变的那个数字,行中循环就出来了(int j=1;j<=i;j++) i是随着列的增加而变化的。也就是每打印一行,i变化一次。 也就是说i每增加一次,打印一行。 */ public static void main(String[] args) { for(int i=1;i<10;i++)//i代表了行号 { for(int j=1;j<=i;j++)//j代表列号,打印一行,行号就增加一次。 { System.out.print(j+"X"+i+"="+i*j+" ");//每执行一次代表在同一行从左向右打印一个列单元。 } System.out.println();//打印完一行后,换行从左边开始准备新一行的打印 } } }
注:条件的结果只有两个:是或否。换成java语言就是“真”或“假”,这是一个bool值,当循环条件永远为“真”时就会变成死循环(一直循环执行循环体中的语句);