控制语句
流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定的小功能的小逻辑模块,控制语句分为三类:顺充,选译,循环。
顺序结构
先执行第一行,再执行第二行。代码是从上往下执行的。
选择结构
是一个条件表达所得到的值,如果符合条件执行那一个语句块中的东西,如果不符合条件执行那一个语句块中的东西。
循环结构
在没有满足条件以前,只会执行代码块中的程序。
这三种结构几乎可以表示所有的事情,这三种基本逻辑结构是相互支撑的,它们共同组成了算法的基本结构,无论怎样复杂的结构可以用它们来表达,所以可以在任何高级语言中看到这三种结构。
选择结构
if单选择结构
if语句对布尔表达式进行判定,若判定为真,则执行{}中的语句块,否则跳过该语句块。如图:
int a = 1;
if (a < 2) {
System.out.println("a满足小于2的条件,所以输出这一句话");
}
//if语句下面如果只有一条语句的时候,我们可以省略{},但是最好还是不要省略。
if else 双选择结构
当表达式为真的时候,执行语句块1,如果为假的时候,执行语句块2。
int a = 1;
if (a < 2) {
System.out.println("a满足小于2的条件,所以输出这一句话");
}else{
System.out.println("a满足大于2的条件,所以输出这一句话");
}
if else if else 多选择结构
当第一个条件语句执行为true的时候,执行第一个语句块,如果不是,再判断第二条件语句,如果为true的时候,执行第二个语句块,如果不是,再往下面执行,一直到条件为true的时候,或者到最后也没有符合条件的条件语句。
int a = 1;
if (a < 2) {
System.out.println("a满足小于2的条件,所以输出这一句话");
}else if(a > 1){
System.out.println("a满足大于2的条件,所以输出这一句话");
} else if (a == 1) {
System.out.println("a满足等于1的条件,所以输出这一句话");
}else {
System.out.println("没有满足条件的,执行这一句话");
}
switch 控制语句
switch 一般是用来作多值的判断,只有多个值的时候用这个控制语句。
switch语句,会根据表达式的值从相匹配的case的地方操作,一直执行到遇见break语句,或者到语句的未尾。如果case的值一直不匹配,则进入最后的default语句。(default语句不是必须的,可以没有)
switch后面的括号中可以填写byte、short、char、int类型、还可以是枚举类型,在java1.7之后,也可以填写String了。
int a = 1;
switch (a) {
case 1:
System.out.println("现在的a是1");
break;
case 2:
System.out.println("现在的a是1");
break;
case 3:
System.out.println("现在的a是1");
break;
case 4:
System.out.println("现在的a是1");
break;
default:
System.out.println("没有匹配的值!");
}
循环结构
循环结构分为两大类,一类是当型,一类是直到型。
当型
在每次执行循环体前,对条件进行判定,当条件满足时,执行循环体,否则终止循环。
for
for循环语句是支持迭代的一种通用结构,是最有效的,最灵活的循环结构,也是我们最常用到的循环结构。
//求1到100的和
int sum = 0; //定一个变量来存储和
//1、执行int i = 1;并且只第一次执行,往后都不执行了。
//2、扫行i <= 100; 每一次运行的时候都会执行这个。
// 判断条件是否成立,如果成立就续继循环,如果不成立就不再循环了。
//3、执行sum += i;
//4、最后一步才是执行 i++;
//5、回到第二步再进行循环。
//for (int i = 0,int sum = 0; i <= 100; i++)
//初始化语句也可以这样写。但是不利于源代码的阅读。
for (int i = 0; i <= 100; i++) {
sum += i;
}
System.out.println("1到100的和是:"+sum);
//结果是:1到100的和是:5050
如果想用for来进行无限循环可以用这种方法:
for(;;){
System.out.println("正在进行无限循环!");
}
foreach 循环:
增强for循环for-each是JDK1.5新增加的功能,专门用于读取数组或集合中所有的元素,即对数组进行遍厉。
//声时一个数组
int[] arr = {1,2,3,4};
for(int i : arr){
//循环的时候把arr里面的值赋给临时变量i,然后再输出i
//foreach循环不能对数组进行操作,只能进行读取
System.out.print(i + ",");
//输出的结果:1,2,3,4,
}
while
//求1到100的和
int a = 1; //定义两个初始值
int sum = 0; //如果符合条件就续继往下面执行,不符合条件就直接跳出循环了。
while (a <= 100) { //循环的开始,先判断a是否小于等于100
sum += a; //如果小于等于100就执行下面代码块里面的语句
a++; //a每一次循环自增1
}
System.out.println("1到100的和是:" + sum);
//结果是:1到100的和是:5050
直到型
在执行了一次循环后,对条件进行判断,如果条件不满足,就继续执行循环体,直到条件满足时终止循环。
do while
do while 循环结构是先执行循环体,然后再判断布尔表达式,若条件为真,再执行循环体,当条件为假的时候,结束循环。所以说do while最少执行一次循环。在工作中用的非常的少。
//求1到100的和
int sum = 0; //定一个变量来存储和
int i = 1;
do { //先执行一次循环体
sum += i; //加等于
i++; //i自增
}while (i <= 100); //再进行条件判断
System.out.println("1到100的和是:"+sum);
//结果是:1到100的和是:5050
嵌套循环
嵌套循环就是一个循环嵌套另一个循环:
下面看一个九九乘法表:
//九九乘法表
for (int i = 1; i <= 9; i++) {
//第二层循环,条件是 j <= i 是因为要从 1 * 1 开始,
// 并且每一次都递增,每一层的表达式都和这个层数相同
for (int j = 1; j <= i; j++) {
System.out.print(i + "*" + j + "=" + i * j + "\\t");
}
System.out.println(); //第一行之后都换行
}
细节决定成败!
个人愚见,如有不对,恳请扶正!