在了解开发工具后,咱们来熟悉一下Java语言的流程控制模块知识,下面经过一些案例来学习一下。java
首先,来熟悉一下流程控制语句if...else的使用:编程
(1)任务:判断某一年是否为闰年数组
(2)准备工做:符合闰年的条件是能被4整除但不能被100整除或者能被400整除工具
(3)编程:经过控制台输入年份的方式,代码以下学习
import java.util.Scanner; public class RunYear{ public static void main(String[] args){ Scanner scan =new Scanner(System.in); System.out.println("请输入一个年份:"); long year; try{ year = scan.nextLong(); if((year%4 == 0 && year%100 !=0) || year%400 == 0) System.out.println(year+"是闰年!"); else System.out.println(year+"不是闰年!"); }catch(Exception e){ System.out.println("输入的不是有效的年份!"); } } }
(4)运行:输入年份可输出相应信息开发工具
其中,Scanner类是一个用于扫描输入文本的简单文本扫描器,能够用这个类从控制台写入数据,类的nextLong()方法能够将输入信息转为一个long型的数据。上面运用了if...else的简单流程语句,也能够按三元运算符(?:)的形式编写,让代码看起来更加简洁。ui
注意:若是if表达式判断两字符串是否相同,则不能使用 “==”,由于字符串属于对象而非基本数据类型,使用“==”判断的将是两个字符串对象的内存地址,而非字符串内容,因此须要经过equals()方法来判断是否相同。spa
接下来,来熟悉一下流程控制语句switch的使用:code
(1)任务:根据成绩分出等级对象
(2)准备工做:switch语句的基本语法格式
switch(表达式){ case 常量表达式1:语句1 break; case 常量表达式2:语句2 break; ... case 常量表达式n:语句n break; default:语句n+1 break; }
参数说明:
参数名称 | 参数描述 |
---|---|
表达式 | 必要参数,能够是任何byte、short、int和char类型的变量 |
常量表达式1 | 若case存在,则为必要参数,该常量表达式的值必须是一个与表达式数据类型相兼容的值 |
语句1 | 可选参数,一条或多条语句,当表达式的值与常量表达式1的值匹配时执行 |
常量表达式n | 若case存在,则为必要参数,该常量表达式的值必须是一个与表达式数据类型相兼容的值 |
语句n | 可选参数,一条或多条语句,当表达式的值与常量表达式n的值匹配时执行 |
break | 可选参数,用于跳出switch语句 |
default | 可选参数,当全部case中的常量表达式匹配不成功时执行 |
语句n+1 | 可选参数,若没有与表达式的值相匹配的case常量时执行 |
(3)编程:按照百分制经过控制台输入成绩的方式,代码以下
import java.util.Scanner; public class ScoreLevel{ public static void main(String[] args){ Scanner scan =new Scanner(System.in); System.out.println("请输入成绩:"); try{ int score = scan.nextInt(); score = score/10; switch(score){ case 10: case 9: System.out.println("成绩等级为A!"); break; case 8: System.out.println("成绩等级为B!"); break; case 7: System.out.println("成绩等级为C!"); break; case 6: System.out.println("成绩等级为D!"); break; case 5: case 4: case 3: case 2: case 1: case 0: System.out.println("成绩等级为E!"); break; } catch(Exception e){ System.out.println("输入无效!"); } } }
(4)运行:输入成绩可输出相应信息
注意:对于多个条件采起相同处理的状况,能够把多个case分支关联在一块儿,减小重复代码,default属于可选参数,可不采用,如上所示。break语句和continue语句都是对循环体的控制语句,前者表示跳出多层循环,结束循环,后者表示跳过其后面的语句,进入下一次循环,循环继续。
紧接着,来熟悉一下流程控制语句while的使用:
(1)任务:自增运算符结合while循环实现数组的遍历
(2)准备工做:while循环语句基本语法格式
while(条件表达式){ 循环体; }
参数说明:条件表达式决定是否进行循环,其结果为boolean类型,即为true或false;循环体是条件表达式结果为true时执行的语句。
(3)编程:
public class ColorWhile{ public static void main(String[] args){ String[] colorArray = {"BLUE","WHITE","YELLOW","BLACK","GREEN"}; int index = 0; while(index < colorArray.length){ System.out.println("颜色:为"+colorArray[index++]); } } }
(4)运行可在控制台看到依次输出数组中的值
注意:数组下标从0开始;自增和自减运算符都分前置和后置两种,如上,“index++“会先使用变量的值,再进行递增运算,“++index”则会先进行递增运算,再使用变量的值,你们能够修改上面的代码进行验证,看看二者之间的区别和原理,会出现数组越界的状况。
最后,来熟悉一下流程控制语句for的使用:
(1)任务:输出杨辉三角
(2)准备工做:杨辉三角的原理(两侧数值均为1,其余位置的数值是其正上方的数值与左上角数值之和);for循环语句基本语法格式
for(表达式1;表达式2;表达式3){ 循环体 }
参数说明:3个表达式均为可选,即for循环能够无表达式,则为无限循环;执行顺序为:表达式1->表达式2->循环体->表达式3。
(3)编程:经过控制台输入显示的行数
import java.util.Scanner; public class YanghuiTriangle { public static void main(String[] args) { Scanner scan =new Scanner(System.in); System.out.println("请输入要输出的行数:"); try{ int row = scan.nextInt(); //建立二维数组 int triangle[][] = new int[row][]; for(int i=0;i<triangle.length;i++){ //初始化第二层数组的大小 triangle[i] = new int[i+1]; //遍历数组 for(int j=0;j<=i;j++){ //两侧数组元素均为1 if(i==0 || j==0 || i==j) triangle[i][j] = 1; //其余数组元素值=正上方值+正上方左值 else triangle[i][j] = triangle[i-1][j]+triangle[i-1][j-1]; //输出数组元素 System.out.print(triangle[i][j]+"\t"); } System.out.println(); } }catch(Exception e){ System.out.println("输入不合规范!"); } } }
(4)运行输入显示行数可输出对应的杨辉三角
注意:在二维数组中,第一个下标值表示行数,第二个下标值表示列数,上面建立二维数组时第二维的长度未肯定,表示第二维的长度任意、不肯定。
以上是对流程控制中几种经常使用的语句进行一些讲解和运用,还有相对复杂的,好比嵌套循环(九九乘法表案例)等,这里不作介绍了,你们自行学习巩固。