文章目录
1、流程控制语句
Java的流程控制语句主要包括三大类:顺序结构、分支结构和循环结构。
2、顺序结构
顺序结构语句是按照代码的顺序,从上往下执行。
public static void main(String[] args){
System.out.println(1);
System.out.println(2);
System.out.println(3);
}
结果输出:
1
2
3
3、分支结构
分支结构主要包括两种类型:if – else if – else、switch
3.1、if语句
首先判断关系表达式看其结果是true还是false,如果是true就执行语句体 ,如果是false就不执行语句体 。
3.2、if – else语句
首先判断关系表达式看其结果是true还是false,如果是true就执行语句体1,如果是false就执行语句体2。
3.3、if – else if – else语句
首先判断关系表达式1,看其结果是true还是false。如果是true就执行语句体1,如果是false就继续判断关系表达式2,看其结果是true还是false。如果是true就执行语句体2,如果是false就继续判断关系表达式,看其结果是true还是false …如果没有任何关系表达式为true,就执行语句体n+1。
3.4、三元运算符
三元运算符格式:(表达式) : 表达式为True时返回的内容 ? 表达式为False时返回的内容。if语句可以实现与三元运算符进行互换:
public static void main(String[] args) {
int a = 10;
int b = 20;
//定义变量,保存a和b的较大值
int max;
if(a > b) {
max = a;
} else {
max = b;
}
//可以上述功能改写为三元运算符形式
max = a > b ? a:b;
}
3.5、switch语句
switch(表达式) {
case 常量值1: 语句体1;
break;
case 常量值2: 语句体2;
break;
...
default: 语句体n+1;
break;
}
执行流程首先计算出表达式的值,其次和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
switch语句中,表达式的数据类型可以是byte,short,int,char,enum(枚举),JDK7后可以接收字符串。
在switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会在判断下一个case的值,直接向后运行,直到遇到break,或者整体switch结束。
4、循环结构
循环结构包括三种类型:for循环,while循环,do…while…循环
4.1、for循环
格式:
for(初始化表达式①; 布尔表达式②; 步进表达式④){
循环体③
}
执行顺序为1234 --> 234 --> 234 直到2为false为止。
4.2、while循环
格式:
初始化表达式①
while(布尔表达式②){
循环体③
布尔表达式④
}
执行顺序为1234 --> 234 --> 234 直到2为false为止。
4.3、do…while循环
格式:
初始化表达式①
do{
循环体③
布尔表达式④
}while(布尔表达式②);
执行顺序为134 --> 234 --> 234 直到2为false为止。
4.4、break和continue
break:跳出整个循环
continue:跳出当前循环
5、小小的算法题
5.1、输出200以内的素数
/**
* @author RuiMing Lin
* @date 2020-03-18 13:35
*/
public class Demo1 {
public static void main(String[] args) {
int count = 0; // 定义一个计数器
for (int i = 2; i <= 200; i++) { // 对2到200之间的数进行遍历
boolean flag = true; // 设置素数的指示器
for (int j = 2; j < i - 1; j++) {
if (i % j == 0) {
flag = false; // 如果不是素数则flag为false
break;
}
}
if (flag) { // 如果是素数则输出
System.out.println(i);
count++;
}
}
System.out.println("共有" + count + "个素数");
}
}
5.2、水仙花数
/**
* @author RuiMing Lin
* @date 2020-03-18 13:41
*/
public class Demo2 {
public static void main(String[] args) {
int count = 0;
for (int i = 100; i <= 1000; i++) {
int ge = i % 10;
int shi = i / 10 % 10;
int bai = i / 100 % 10;
if (ge * ge * ge + shi * shi * shi + bai * bai * bai == i) {
System.out.println("第" + ++count + "个水仙花数:" + i);
}
}
}
}
有错误的地方敬请指出!觉得写得可以的话麻烦给个赞!欢迎大家评论区或者私信交流!