------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
本文主要介绍java基础语法中的流程控制,流程控制是我们写出灵活代码的基础。常见的流程控制主要有四类:判断结构、选择结构、循环结构、其他控制结构
一、判断结构
判断结构的标志是if语句,if语句主要有三种表现形式:
1、if(条件表达式)
{
执行语句
}
注意:
1、如果if语句中只有一条语句,那么可以不写大括号。不过初学者一定要写括号,以免出错。
2、如果if语句没写大括号,if就只能控制离它最近的单条语句。
2、if(条件表达式)
{
执行语句;
}
else
{
执行语句;
}
三元运算符是if-else格式的简写,但是三元运算符是一个表达式,是要产生具体的结果的,所以在if-else结构有具体的结果的时候可以简写为三元运算符。
3、if(条件表达式)
{
执行语句;
}
else if(条件表达式)
{
执行语句;
}
else
{
执行语句;
}
我们可以写个程序加深对于if-else结构的理解:根据用于指定月份,打印该月份所属的季节。
1 class OperatorDemo 2 { 3 public static void main(String[] args) 4 { 5 IfDemo(9); 6 } 7 static void IfDemo(int month) 8 { 9 //一年有四季,春3-5,夏6-8,秋9-11,冬12-2 10 if(month<1||month>12) 11 System.out.println("没有"+month+"月,这个月份!"); 12 else if (month>=3&&month<=5) 13 { 14 System.out.println(+month+"月是春季!"); 15 } 16 else if (month>=6&&month<=8) 17 { 18 System.out.println(+month+"月是夏季!"); 19 } 20 else if (month>=9&&month<=11) 21 { 22 System.out.println(+month+"月是秋季!"); 23 } 24 else 25 { 26 System.out.println(+month+"月是冬季!"); 27 } 28 } 29 }
输出的结果为:
二、判断结构
判断结构的标志是switch
格式:
switch(表达式)
{
case 取值1:
执行语句;
break;
case 取值1:
执行语句;
break;
default :
执行语句;
break;
}
switch语句的特点:
1、switch语句选择的类型只有四种:byte,short,int,char。
2、case与default没有顺序。先执行第一个case,没有匹配的case执行default。
3、结束switch语句的两种情况:①遇到break,②执行到switch语句结束。
4、如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。
5、进入switch语句后,执行顺序是先执行case,然后从上到下,最后再执行default。即使default放在case上面,执行顺序也不变。
也用switch演示一下刚刚的月份得到季节的题目吧:
1 static void switchDemo(int month) 2 { 3 switch(month) 4 { 5 case 3: 6 case 4: 7 case 5: 8 System.out.println(+month+"月是春季!"); 9 break; 10 case 6: 11 case 7: 12 case 8: 13 System.out.println(+month+"月是夏季!"); 14 break; 15 case 9: 16 case 10: 17 case 11: 18 System.out.println(+month+"月是秋季!"); 19 break; 20 case 12: 21 case 1: 22 case 2: 23 System.out.println(+month+"月是冬季!"); 24 break; 25 default : 26 System.out.println("没有"+month+"月,这个月份!"); 27 break; 28 } 29 }
定义的一个静态函数来实现的,为了在主函数中输出方便,输出的结果为:
对于几个固定的值判断,建议使用switch语句,因为switch语句会将具体的答案都加载进内存,效率相对较高
三、循环结构
循环结构的关键词有:while、do-while、for;
1、while语句的结构:
while(条件表达式)
{
执行语句;
}
一定要注意不要写while(true);这样的语句,后面的分号就是循环体,代表不执行任何语句,这个循环就成了死循环,后面的{执行语句;}就变成了局部代码块
2、do-while语句的格式:
do
{
执行语句;
}while(条件表达式)
dowhile语句的特点:无论条件是否满足,循环体至少执行一次。while如果条件不满足,循环体一次都不会执行。
3、for语句的格式;
for(初始化表达式;循环条件表达式;循环后操作表达式)
{
执行语句;
}
for里面的三个表达式运行的顺序,初始化表达式只读一次,判断循环条件,为真就执行循环体,然后再执行循环后的操作表达式,接着继续判断循环条件,重复找个过程,直到条件不满足为止。
接下来介绍一种比较复杂的for循环,就是for循环嵌套。
简单来说就是在循环中还要执行循环操作。在生活中很常见,比如9*9乘法口诀,两个乘数都分别从1增加到9,就需要双重循环来操作。下面演示一下乘法口诀标的代码:
1 static void doubleForDemo(int number) 2 { 3 for(int i=1;i<=number;i++) 4 { 5 //j<i作为循环判断条件可以控制每次循环要操作的数 6 for(int j=1;j<=i;j++) 7 { 8 System.out.print(j+"*"+i+"="+j*i+"\t"); 9 } 10 //每次循环一轮后打印回车换行 11 System.out.println(); 12 } 13 }
代码中的"\t"是一个转义字符,也就是制表符。还有其他的一些转义字符:\n:回车,\b:退格,\r:回车符。
输出结果为:
四、其他控制语句
break(跳出),continue(继续)。
break语句应用于跳出当前循环;
continue语句是结束本次循环继续下次循环。
注意:这两个语句离开循环的应用范围,存在是没有意义的。
这个两个语句单独存在,下面都不可以有语句,因为执行不到,编译会出错!
我们可以通过一个小练习来熟悉一下break和continue。
1 //求10以内的前三个奇数。 2 static void breakAndContinue() 3 { 4 int count=0; 5 for(int i=0;i<10;i++) 6 { 7 if(i%2==0) 8 continue;//如果是偶数则结束本次循环继续下次循环。 9 if(count++>=3)//如果是奇数则判断是第几次,如果超过第三个奇数则终止循环 10 break; 11 System.out.println(i); 12 } 13 }
结果如下:
流程控制的总结到这里就结束了,要想写好代码,流程控制也是必须要牢牢掌握的。
继续努力加油!为了明天更好的自己。