文章目录
选择语句
if结构
if (关系表达式) {
结构体
}
流程图
if else 结构
if (表达式){
语句体1
} else {
语句体2
}
流程图
复合if else 结构
格式
if (表达式){
语句体1
} else if{
语句体2
} else if{
语句体3
} else {
语句体n
}
流程图
switch 结构
遇到判断变量等于多个常量值的情况时(比如菜单选择,仅有1,2,3,其他选项时)使用switch比较好
格式:
switch(表达式) {
case 常量1:
语句1;
break;
case 常量2:
语句2;
break;
case 常量3:
语句3;
break;
default: // 如果表达式不符合任意case情况,则执行default
语句n;
break;
}
流程图:
switch 的穿透
- 如果在某个case 里没有写break结束,那么会从这个case开始一直往下执行,穿透到其他的case里去执行语句,直到break。
- 如果default在最后,可以不写break,但是因为default也可以写在其他case前,所以default情况也建议写上break。
循环结构
for循环
- 对于固定次数的for循环,在IDEA中可以输入
次数n.fori
自动补全,i会从0开始循环到n-1,共执行n次。 - 还可以使用
次数n.forr
生成倒序的从n-1到0的for循环。 - 上面两个方式比较适合建立数组的迭代,只需要输入
数组名称.fori
或数组名称.forr
就可以快速建立遍历数组的循环。ArrayList也是一样,只需要输入集合名称.fori / forr
就可以快速建立遍历的for循环。
while 循环
While (表达式){ ... }
当表达式为true时循环执行内部内容。
while (true) {...}
这是一个死循环。(在cmd中,死循环可以用Ctrl + C 立即停止程序)
do while循环
格式
do {
...
} while(条件表达式);
会先执行一次代码块再判断,如果条件成立,则继续循环。
而上面两种循环是先判断再执行。
break
用于跳出循环。比如在死循环里结束循环。例如在5.fori的循环中,i == 3时break,代码块只会执行3次。i分别为0 1 2.
continue
用于结束当次循环。例如在5.fori的循环中,i == 3时 continue,代码块会在continue时立即开始下一次循环。i分别为0 1 2 4.
方法
将一个功能抽取出来,放在大括号内,就是方法
三要素
- 返回值
- 方法名称
- 参数列表
格式
public static void 方法名() { 方法体 }
(这是没有返回值与传入参数的方法)
完整格式: (public 代表方法权限为公共,static修饰符代表方法为静态方法)
public static 返回值类型 方法名 (参数列表) {
方法体
return 返回值;
}
比如判断闰年的代码中,可以把判断语句单独列出来作为方法judge,传入参数为年份,返回true或false。
public static boolean judge(int year){
if ((year % 4 == 0)&&(year % 100 != 0) || (year % 400 == 0)){
return true;
} else {
return false;
}
}
这个代码还可以简化:
public static boolean judge(int year){
return (year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0);
}
随后在main中只需要sout( judge (year) )
就可以输出true或false了。
注意
-
方法不能有多个返回值。也就是只能return一个东西。
就好比去超市买完东西回来,一只手不能拿很多商品,如果要拿很多,就要拿个塑料袋装起来。
这个塑料袋可以是数组Array或集合ArrayList。 -
但是可以有多个return语句,只要保证同时只能执行一条就可以了。