1. 顺序结构
- Java的基本结构就是顺序结构,除非特别指明,否则就是按照顺序一句一句执行
- 顺序结构是最简单的算法结构
- 执行方式:从上往下,依次执行
public class Demo {
public static void main(String[] args) {
System.out.println("这是第一句");
System.out.println("这是第二句");
System.out.println("这是第三句");
System.out.println("这是第四句");
/*
输出结果:
这是第一句
这是第二句
这是第三句
这是第四句
*/
}
}
2. 选择结构
- java的选择结构是根据条件判断之后再做处理的一种语法结构,使程序运行更加灵活
- 执行方式:根据判断条件选择要执行的语句分支
2.1 if单选结构
- 拥有一个选择分支,条件成立则执行分支语句,否则跳过继续执行之后的语句
- 语法结构:if(条件){代码块}
public class Demo {
public static void main(String[] args) {
int num = 10;
if(num>0) {
System.out.println("num大于0");
}
System.out.println("结束");
/*
输出结果:
num大于0
结束
*/
}
}
2.2 if-else双选结构
- 拥有两个选择分支,条件成立则执行if下的语句,否则执行else下的语句
- 语法结构:if(条件){代码块1} else {代码块2}
public class Demo {
public static void main(String[] args) {
int num = -10;
if(num>0) {
System.out.println("num大于0");
}else {
System.out.println("num小于0");
}
System.out.println("结束");
/*
输出结果:
num小于0
结束
*/
}
}
2.3 if-elseif-else多选结构
- 拥有多个选择分支,条件1成立则执行条件1下的语句,条件2成立则执行条件2下的语句,…,全都不成立执行else下的语句(else部分可不写)
- 语法结构:if(条件1){代码块1} else if(条件2){代码块2}…[else {代码块n}]
public class Demo {
public static void main(String[] args) {
int score = 80;
if(score>=90) {
System.out.println("A");
}else if(score>=80) {
System.out.println("B");
}else if(score>=70) {
System.out.println("C");
}else if(score>=60) {
System.out.println("D");
}else if(score>=0) {
System.out.println("E");
}else {
System.out.println("成绩有误!");
}
System.out.println("结束");
/*
输出结果:
B
结束
*/
}
}
2.4 switch-case多选结构
- 拥有多个选择分支,通过判断变量与某一个值相等来选择哪一个分支执行,都不相等则执行default分支(default部分可以不写)
- 每一个case分支的代码块最后一般要添加break结束switch,否则将继续执行下一个case分支
- 语法结构:switch(判断值){case 值1: 代码块1 [break;] case 值2: 代码块2 [break;] …default:代码块n}
public class Demo {
public static void main(String[] args) {
int num = 3;
switch(num) {
case 1:
System.out.println("num为1");
break;
case 2:
System.out.println("num为2");
break;
case 3:
System.out.println("num为3");
break;
case 4:
System.out.println("num为4");
break;
case 5:
System.out.println("num为5");
break;
default:
System.out.println("没有num的值");
}
System.out.println("结束");
/*
输出结果:
num为3
结束
*/
}
}
3. 循环结构
- java的循环结构用于执行具有重复性的工作,让代码编写更简便
- 执行方式:根据条件判断执行重复的语句
3.1 while循环结构
- 通过判断while条件是否成立来决定循环体是否再次执行
- 进入循环体之前就进行判断
- 语法结构:while(条件){循环体}
public class Demo {
public static void main(String[] args) {
//输出0~4
int num = 0;
while(num<5) {
System.out.println(num);
num++;
}
System.out.println("结束");
/*
输出结果:
0
1
2
3
4
结束
*/
}
}
3.2 do-while循环结构
- 通过判断while条件是否成立来决定循环体是否再次执行
- 进入循环体之后才进行判断,循环体至少执行一次
- 在while(条件)后要加上“;”
- 语法结构:do {循环体}while(条件);
public class Demo {
public static void main(String[] args) {
int num = 10;
do
{
System.out.println(num);
num++;
}while(num<5);
System.out.println("结束");
/*
输出结果:
10
结束
*/
}
}
3.3 for循环结构
- for循环结构是支持迭代的一种通用结构,是最有效,最灵活的循环结构
- for循环结构在循环之前就确定了循环的次数
- 语法结构:for(初始化;判断条件;更新) {代码块}
public class Demo {
public static void main(String[] args) {
//输出0~4
int num = 5;
for(int i=0;i<num;i++) {
System.out.println(i);
}
System.out.println("结束");
/*
输出结果:
0
1
2
3
4
结束
*/
//for(;;)为无条件循环
}
}
3.4 for循环增强结构
- for循环增强结构主要用于数组和集合
- 语法结构:for(声名语句:表达式) {代码块}
public class Demo {
public static void main(String[] args) {
//输出数组arrNum的元素
int[] arrNum = {1,2,3,4,5};
for(int i:arrNum) { //i应为后面的数组或集合对应的元素类型
System.out.println(i);
}
System.out.println("结束");
/*
输出结果:
1
2
3
4
5
结束
*/
}
}
4. break、continue、goto
4.1 break
- break用于任何循环语句以及switch多选结构中,其功能为结束循环语句或switch多选结构,即不执行循环体或switch多选结构剩余的语句
public class Demo {
public static void main(String[] args) {
//输出0~5
int num = 100;
for(int i=0;i<num;i++) {
System.out.println(i);
if(i==5) {
break;
}
}
System.out.println("结束");
/*
输出结果:
0
1
2
3
4
5
结束
*/
}
}
4.2 continue
- continue用于循环语句,其功能为结束当次循环,即跳过当次循环进行下一次循环
public class Demo {
public static void main(String[] args) {
//输出0到10的奇数
int num = 10;
for(int i=0;i<num;i++) {
if(i%2==0) {
continue;
}
System.out.println(i);
}
System.out.println("结束");
/*
输出结果:
1
3
5
7
9
结束
*/
}
}
4.3 goto
- java语言中虽然有goto关键字,但并未得到正式使用,只能在带标签的break和continue中看到goto的影子(不推荐使用)
public class Demo {
public static void main(String[] args) {
//输出10到20的质数
next:for(int i=10;i<=20;i++) {
for(int j=2;j<i/2;j++) {
if(i%j==0) {
continue next;
}
}
System.out.println(i);
}
System.out.println("结束");
/*
输出结果:
11
13
17
19
结束
*/
}
}