一、顺序结构
Java的基本结构就是顺序结构,代码按照顺序依次执行。
二、选择结构
(一)if选择结构
1、if单选择结构
if单选择结构也叫if单条件分支语句,即根据一个条件来控制程序执行的流程。
语法:
if(布尔表达式){
}
2、if双选择结构
当需要有两个判断时,就要用双选择结构,所以就有了if…else语句。 语法:
if (布尔表达式){
}else{
}
3、if多选择结构
现实问题多种多样,如果存在多级判断,比如输入不同段的分数,要求输出对应分数段的等级,则需要用多选择结构来处理。
语法:
if (布尔表达式1){
}else if (布尔表达式2){
}else if (布尔表达式3){
}else{
}
4、if嵌套结构
if…else语句的嵌套也是合法的,也就是说你可以在另一个if或者if…else语句中使用if或者if…else语句。 语法:
if (布尔表达式1){
if (布尔表达式2){
}
}
(二)Switch多选择结构
多选择结构还有一个实现方式就是switch…case语句。switch…case语句判断一个变量与一个系列值中的某个值是否相等,每个值成为一个分支。
语法:
switch(expression){
case value:
break;
case value:
break;
default:
}
switch语句中的变量类型可以是:
- byte、short、int或者char
- 从jdk7开始支持字符串String类型
- 同时value处必须为字符串常量或字面量
注意:下文将会阐述关于break语句的一些说明
三、循环结构
(一)while循环
while循环是最基本的循环结构。
语法;
while(布尔表达式){
}
循环条件一直为TRUE就会造成“死循环”,我们大部分情况是要让循环停止下来的,需要一个终止循环的条件,少部分情况则需要循环一直进行,比如服务器的请求响应监听等。
(二)do…while循环
对于while语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。
语法:
do {
}while(布尔表达式)
while和do…while的区别:
- while先判断后执行,而do…while先执行后判断
- do…while总是保证循环体会被至少执行一次
(三)for循环
Java提供了另一种循环语句——for循环语句,使一些循环结构更加简单。
语法:
for (初始化; 布尔表达式; 修正变量){
}
for语句的执行规则如下:
- 完成初始化工作。可以初始化一个或多个循环控制变量,可以是空语句;
- 判断布尔表达式,若值为TRUE,则进行第3步,否则结束for循环;
- 执行一次循环体,然后进行修正变量,以改变循环条件,进行第2步;
- 结束for循环。
例如:
public class ForDemo04 {
public static void main(String[] args) {
for (int i=0; i<5; i++){
System.out.println(i);
}
}
}
四、其他
(一)break和continue语句
- break语句
break用于强制退出循环,不执行循环中的剩余语句。例如上文提到的,在switch语句中用到了break语句。 我们再来举一个例子,已知一个学生成绩,求其对应的等级: 我们先将break语句写入
public class BreakDemo {
public static void main(String[] args) {
char grade = 'C';
switch (grade){
case 'A':
System.out.println("优秀");
break;
case 'B':
System.out.println("良好");
break;
case 'C':
System.out.println("合格");
break;
case 'D':
System.out.println("不合格");
break;
}
}
}
结果是正确的 然后我们将所有的break语句去掉
public class BreakDemo {
public static void main(String[] args) {
char grade = 'C';
switch (grade){
case 'A':
System.out.println("优秀");
case 'B':
System.out.println("良好");
case 'C':
System.out.println("合格");
case 'D':
System.out.println("不合格");
}
}
}
结果是这样的 也就是说,如果不写break语句,grade这个变量与下面的case语句匹配时,当它匹配到第三个case语句,打印出“合格”之后,不会结束程序,而是继续向下执行下一个case语句的内容,这也就说明了break的作用。
- continue语句
continue语句用在循环体语句中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。 我们再来举个例子,输出100以内不含10和10的倍数的数:
public class ContinueDemo {
public static void main(String[] arg) {
int i = 0;
while (i < 100){
i++;
if (i%10==0){
System.out.println();
continue;
}
System.out.print(i+"\t");
}
}
}
可以看到,当遇到10或10的倍数时,由于加了continue语句,所以程序会终止当前循环, 而转入进行下一次循环。
(二)数组与for循环
jdk5引入了一种增强型for循环,主要用于遍历数组或集合。
语法:
for (声明语句:表达式){
}
- 声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。
- 表达式:表达式是要访问的数组名,或者是返回值为数组的方法。
例如:
public class ForDemo05 {
public static void main(String[] args) {
int[] numbers = {1, 2, 3, 4, 5};
for (int x:numbers){
System.out.print(x);
}
}
}
也就是说,每次循环都会从numbers里面取值,然后赋值给变量x。
以上仅个人学习经验,有不足请指正~谢谢大家
|