流程控制
数组
流程控制
在java中程序的执行通常包含三种结构
顺序结构(从main方法开始,从上往下依次执行)
分支结构
if...else...
switch
循环结构
分支结构(条件分支)
if...else...
语法结构:
if(条件表达式){
//执行体
}
if(条件表达式){
}else{
}
if(条件表达式){
}else if(条件表达式){
}else{
}
示例代码:
IfElseDemo d = new IfElseDemo(); int i = 189; if (i >= 0 && i <= 9) { d.do0_9(); } else if (i >= 10 && i <= 99) { d.do10_99(); } else if (i >= 100 && i <= 999) { d.do100_999(); }
switch
语法:
switch(变量){
case 值1:
//执行内容 break;
case 值2:
//执行内容 break;
...
default:
//执行内容 break;
}
switch能够支持的数据类型包含:
整数:byte short int
字符:char
字符串:String (JDK1.7+)
枚举类型(enum :JDK1.5+)
①根据分数等级输出对应的教师评语
输入类型 char
A: 你好棒哟!加油
B:不错,再接再厉
C:大兄弟该加油了
D:今天晚上来办公室找我!
②根据输入的月份,显示该月份的所属季节
3,4,5 :spring
6,7,8 :summer
9,10,11 :autumn
12,1,2 :winter
循环语句
for循环
while循环
do...while循环
forEach循环(主要用于数组或者集合遍历操作,迭代)
递归(recursion)
for循环
语法:
for(初始变量;条件表达式;步进表达式){
//循环体
}
思考:从1输出到31每隔7个数换一行?
for(int i = 1;i <= 31;i++){ System.out.print(i+"\t"); if(i % 7 == 0){ System.out.println(); } }
while循环
语法:
while(条件表达式){
//循环体
}
int i = 1; while(i <= 31){ System.out.print(i+"\t"); if(i % 7 == 0){ System.out.println(); } i++; }
do...while循环
语法
do{
//执行体
}while(条件表达式)
int i = 1; do{ System.out.print(i + "\t"); if(i % 7 == 0){ System.out.println(); } i++; }while(i <= 31);
打断循环
continue:跳过循环语句中的一次循环
break:在循环语句中可以用于结束一层循环
return: 用于表示方法的结束,一旦执行到return,则方法结束;在同一个代码片段中return之后不允许执行任何其他代码
递归(Recursion)
递归即在方法内部调用方法自身,递归可以解决一些算法问题(斐波拉契数列等),文件夹遍历问题(目录树)、菜单树等结构,在java中递归有两种模式:
直接递归
间接递归
/** * 使用递归解决斐波拉契数列 * 1 1 2 3 5 8 13 21... */ public int fib(int n){ if(n == 1 || n == 2){ return 1; }else{ return fib(n - 1) + fib(n - 2); } }
数组
数组是用于存储一组相同数据类型的数据结构,数组是一种引用数据类型。
数组的声明语法:
数据类型[] 变量名;
数组的初始化:
静态初始化
动态初始化
//数组静态初始化 int[] i = {1,3,5,7,9,11}; //数组的动态初始化 int[] j = new int[5]; int[] k = new int[]{10,20,30};
数组中的元素获取方式通过索引,数组的索引从0开始;在获取数组中的元素时索引值是从0~(数组的长度-1)
数组的长度一旦定义无法改变