众所周知,结构化程序设计的三个基本结构分别为顺序结构、选择结构与及循环结构,这三个结构也是各种复杂程序的基本构造。
顺序结构
顾名思义,就是按照顺序执行语句(程序段)。
选择结构
选择结构在我们日常生活中使用的是十分之多,例如判断这事情做不做,值不值得。。。。在处理这些问题的时候,我们一般采用选择结构来对我们的问题进行一个处理,我们就得考虑用户的各种选项后的事务流,根据不同的条件来执行不同的语句。在Java中,条件语句主要包括 if 语句和 switch 语句。
if 条件语句
if 语句主要是用于告诉程序在某个条件成立的情况下执行某段语句,而在另一种情况下,执行另外的语句。在这里,if 语句游客分为简单的 if 语句、if ... else 语句和 if ... else if 多分支语句。在条件语句中,选择性执行的语句可以是多条也可以是一条。
1、简单的 if 语句
语法格式:
if(布尔表达式){
语句;
}
// 布尔表达式:必要参数,它最后的返回值必须是一个布尔值,可以是一个布尔值,也可以是一个关系表达式。
// 语句:可以是一条语句(可以省略大括号),也可以是多条语句(必须用大括号包起来),仅当布尔表达式的值为True的时候才会执行
(如果。。。就。。。)简单的 if 语句,就是如果该条件成立,则执行某一段语句,如果不成立,就什么也不执行。
2、if ... else 语句
条件语句中最常用的一种语句形式,通常应用于针对于某件事情做出选择性的处理:当满足该条件时,就进行此种处理,不满足时就进行另外一种处理。
语法格式:
if(布尔表达式){
语句1;
}else{
语句2;
}
在使用 if ... else ... 语句的时候,对于简单的语句控制,我们可以使用条件运算符(三目运算符):
a?b:c // 当a成立的时候执行b,否则执行c
3、if ... else if 多分支语句
此语句通常用于针对某一事件的多种情况进行处理,通常表现为当满足某种条件的时候就进行某种处理,当满足另外一种条件的时候就进行另外一种处理。
语法格式:
if(布尔表达式1){
语句1;
}else if(布尔表达式2){
语句2;
}
...
else if(布尔表达式n){
语句n;
}
switch 多分支语句
switch语句的应用是为了简化 if ... else if 多分支语句的形式。当判断值过于多的情况下,有时候使用 switch 多分支语句能明显简化代码。
switch 语句中的参数必须是整型、字符型、枚举类型或者字符串类型,常量表达式1~n必须是与参数兼容的数据类型。switch 语句执行的时候,它首先对参数进行计算,如果得出的结果与下面的某个常量表达式相同,则执行该常量表达式后所对应的语句(可多条)。如果该语句后没有 break 关键词,则会继续执行后面的 case 中的语句。如果没有与之对应的常量表达式,则会执行 default 语句(如果有的话)。
语法格式:
switch(用于判断的参数){
case 常量表达式1 : 语句1 ; break;
case 常量表达式2 : 语句2 ; break;
case 常量表达式3 : 语句3 ; break;
case ...
case 常量表达式n : 语句n ; break;
default: 语句(n+1); break;
}
// default 语句可以不写,代表当没有正确的匹配的时候,switch 语句不做任何处理
// break 用于跳出整个 switch 语句
// break 是否需要添加,取决于下面同等级语句是否需要执行
循环结构
循环语句就是在满足一定的条件下反复执行某一操作。在Java中提供了四种常用的循环语句,分别是 while 循环语句、do ... while 循环语句、for 循环语句、foreach循环语句。其中 foreach 循环语句是 for 循环的特殊简单版,也常被成为高级 for 循环。
1、while 循环和do ... while 循环
这两者循环方式皆为利用一个条件来控制是否需要继续循环反复执行这个语句。
语法格式:
// while 循环:
while(条件表达式){
循环体;
}
// do ... while 循环
do{
循环体;
}while(条件表达式)
执行顺序:
相同点:两者都是当条件成立的时候会执行循环体的内容,适用于循环次数未知的情况下。
不同点:前者采用先判断后执行的方式,即先判断条件,是否需要执行本次循环;而后者则是先执行后判断,即先执行一次循环体的内容,然后再判断是否需要继续循环。
注:while 表达式的括号后没有分号,如果添加,则编译器会默认为这是一条语句会进入无限循环。
2、for 循环和 foreach 循环
for 循环是Java程序设计中最常用的循环语句,它与 while 循环有点类似,它也是先进行条件的判断,是否需要去执行本次循环体。而 foreach 循环则是 for 循环的特殊简单版,也被称为“高级 for 循环”。
语法格式:
// for 循环
for(表达式1;表达式2;表达式3){
语句;
}
表达式1:通常是一个赋值表达式。负责设置循环的起始值,也就是给控制循环的变量赋初始值。
表达式2:通常是一个关系表达式,用于判断是否需要继续执行循环体内容。(我们也可以在循环体通过break关键词来退出循环)
表达式3:通常是一个赋值表达式,对控制变量进行增大或减小。
执行的顺序:
// foreach 循环
for(循环变量o:遍历对象x){
引用了 x 的 Java 语句
}
// 循环输出数组的值
public class PrintContent {
public static void main(String[] args) {
int[] num = new int[]{0,1,2,3,4,5,6,7,8,9};
for (int i : num) {
System.out.print(i+"、");
}
}
}
// 输出结果为:0、1、2、3、4、5、6、7、8、9、
// 即 i 为数组当前所循环的元素的值
由上我们可知,第一个参数:循环变量,其类型就是为遍历对象的元素的类型。
第二个参数:遍历对象,就是我们所要进行遍历遍历的对象,例如数组、集合等。