JAVA基础知识(三)流程控制
顺序结构
Java中默认的语句执行顺序就是从上到下,按顺序执行。
分支结构
if
语句
根据不同的条件(布尔运算结果为
true
或false
),执行不同的分支(语句块)。
if (条件1) {
//满足条件1后执行的语句
} else if (条件2) {
//不满足条件1,但满足条件2后执行的语句
} else {
//前面的条件均不满足后执行的语句
}
条件:既布尔运算
else{...}
并非必须的
举例:
public class Main {
public static void main(String[] args) {
int n = 90;
if (n >= 90) {
System.out.println("优秀");
} else if (n >= 60) {
System.out.println("及格了");
} else {
System.out.println("挂科了");
}
}
}
// 来源:https://www.liaoxuefeng.com/wiki/1252599548343744/1259539352677728
switch
语句
根据某个表达式的结果,分别执行不同的分支
switch(表达式) {
case 结果1:
// 符合结果1执行的分支
break; // 若不加break,语句将会按顺序继续往下执行结果2的分支
case 结果2:
// 符合结果2执行的分支
break; // 若不加break,语句将会按顺序继续往下执行结果3的分支
case 结果3:
case 结果4:
// 符合结果3或结果4执行的分支
break; // 若不加break,语句将会按顺序继续往下执行default的分支
default:
// 默认的分支,若以上结果没有相匹配的结果,则默认执行该分支,非必须。
break;
}
举例:
public class Main {
public static void main(String[] args) {
String fruit = "apple";
switch (fruit) {
case "apple":
System.out.println("Selected apple");
break;
case "pear":
System.out.println("Selected pear");
break;
case "mango":
System.out.println("Selected mango");
break;
default:
System.out.println("No fruit selected");
break;
}
}
}
// 来源: https://www.liaoxuefeng.com/wiki/1252599548343744/1259541030848864
循环结构
for
语句
循环执行某个语句块(
{...}
),可以设定循环进行条件、计数器等。
基本结构
for ([初始条件]; [循环检测(进行)条件]; [循环后更新计数器]) {
// 执行语句
}
例如:求1加至10的和
int sum = 0;
for (int i = 1; i <= 10; i++) {
sum += i;
}
System.out.println(sum);
初始条件、循环检测条件、循环后更新计数器均可省略不写,如下:
for(;;) {// 这个循环将一直执行下去(死循环)
//语句
}
但是for
和while
的明显区别就在于for
循环可以在for
内部方便、清晰的设置一个局部使用的循环计数器,所以如果不需要局部计数器,直接使用while
循环会更好。
for-each
循环
for
语句的另一种语法,用来方便的循环遍历数组或可迭代类型(list
,map
,……)的元素本身。
基本格式
for(<数据类型> 元素名: <数组或可迭代元素>) {
// 语句
}
举例:循环遍历数组
int[] numbers = {1, 3, 5, 7, 9};
for(int t : numbers) {
System.out.println(t);
}
while
语句
循环执行某个语句块(
{...}
),先进行循环条件的检测,再执行语句块的语法。
基本格式:
while(循环进行条件) {
// 语句
}
若循环进行条件设置为true
,则循环将一直进行。通常会用来写某些需要在程序运行期间需要一直执行的语句。
举例:打印一百次ni,hao
int c = 100;
while(c > 0) {
System.out.println("ni,hao");
c--;
}
break
在循环过程中,可以使用
break
语句跳出当前循环,不再继续向下执行。
举例:
public class Main {
public static void main(String[] args) {
int sum = 0;
for (int i=1; ; i++) {
sum = sum + i;
if (i == 10) {
break;// 提前结束循环,不再执行for内的语句。
}
}
System.out.println(sum);
}
}
continue
continue
则是提前结束本次循环,直接继续执行下次循环。
举例:计算1到10中奇数的和(仅仅举例说明continue
,实际上并不会这么写)
public class DataType {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <= 10; i++) {
if ((i & 1) == 0) { // i为偶数时
continue;// 直接进行下一次循环
} else {// i为奇数时
sum += i;
}
}
System.out.println(sum);
}
}