3.1程序结构
顺序结构、选择结构和循环结构是结构化程序设计的3种基基本结构,是各种复杂程序的基本构造单元。下图展示了这3种程序结构的基本理念,其中,第一幅高图是顺序结构的流程图,它就是按照书写顺序执行的语句构成的程序段;第二幅图是选择结构的流程程图,它主要根据输入数据和中间结果的不同选择执行不同的语句,选择结构主要由条件语句(也叫判断语句或者分支语句)组成;而第三幅图是循环结构的流程图,它是在一定条件下反复执行某段程序的流程结构,其中,一组被重复执行的语句称为循环体,而决定循环是否终止的判断条件是循环条件,循环结构主要由循环语句组成。
我们之前编写的程序都是顺序结构,比如定义一个int类型的变量并输出,代码如下:
int a = 15;
System.out.println(a);
3.2 条件语句
在生活中,用户选择的情况非常多,比如,当一个人走到岔路口时,摆在面前的有两条路,那么应该如何根据需要选择要走的路呢?或者,在一个公司面临重大的战略转型时,领导人和投资人该如何做出正确的选择,这些都需要进行选择。那么在程序中,如果遇到选择的情况怎么办呢?这时条件语句就可以派上用场了。条件适句根据不同的条件来执行不同的语句,在Java中,条件语句主要包括if语句和switch语句两种。
3.2.1 if条件语句
if件语句主要用于告诉程序在某个条件成立的情况下执行某段语句,而在另一种情况下执行另外的语句。
使用if条件语句,可选择是否要执行紧跟在条件之后的那个语句。关键字if之后是作为条件的
“布尔表达式”,如果该表达式返回的结果为 true, 则执行其后的语句;若为 false,则不执行 if 条
件之后的语句。if条件语句可分为简单的 if条件语句、if...else 语句和 if….else if 多分支语句。
例3.1
package jay;//包名
public class zy {//创建类
public static void main(String[] args) {//主函数
// TODO Auto-generated method stub
if (true)//让判断条件永远为真
System.out.println("我没有使用大括号");//没有大括号,直接跟在if语句之后
if(true)//让判断条件永远为真
System.out.println("我使用大括号");//输出语句在大括号之内
}
}
例3.2
package jay;//包名
import java.util.Scanner;//导入输出函数需要用到的包
public class zy {//创建类
public static void main(String[] args) {//主函数
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in); //创建Scanner对象,用于进行输入
System.out.println("请输入要拨打的电话号码:");//输出请输入要拨打的电话号码
int phoneNumber = in.nextInt();//创建变量,保存电话号码
if (phoneNumber != 84972266)//判断此电话码是否是84972266
//如果不是84972266号码,则提示号码不存在
System.out.println("对不起,您拨打的号码不存在");//输出对不起,您拨打的号码不存在
}
}
2. if...else语句
else 语句是条件语句中最常用的一种形式,它会针对某种条件有选择地做出处理。通常表现为“如果满足某种条件,就进行某种处理,否则就进行另一种处理”。
语法如下:
if(布尔表达式){
语句1;
}else {
语句 2;
}
如果表达式的值为true,则执行紧跟if语句的复合语句;如果表达式的值为false,则执行else后面的语句。
这种形式的判断语句相当于汉语里的“如果……那么……否则……”,用流程图表示第二种判断语句
例3.3
package jay;//包名
import java.util.Scanner;//导入输出函数需要用到的包
public class zy {//创建类
public static void main(String[] args) {//主函数
// TODO Auto-generated method stub
int math = 95;//给math赋值
int english = 56;//给english赋值
if (math > 60) {//判断math是否大于60
System.out.println("数学及格了");//条件成立时输出数学及格了
} else {
System.out.println("数学没有及格");//条件成立时输出数学没有及格
}
if(english > 60) {//判断english是否大于60
System.out.println("英语及格了");//条件成立时输出英语及格了
} else {
System.out.println("英语没有及格"); //条件成立时输出英语没有及格
}
}
}
3. if...else if多分支语句
if..elseif多分支语句用于针对某一事件的多种情况进行处理。通常表现为“如果满足某种条件,就进行某种处理;如果满足另一种条件,则进行另一种处理理”。
语法如下:
if(表达式1){
语句1
} else if(表达式 2){
语句2
}
else if(表达式n){
语句n
}
表达式1~表达式n:必要参数。可以由多个表达式组成,但最后返回的结果一定要为 boolean类型。
语句 1~语句 n:可以是一条或多条语句,当表达式1的值为true时,执行语句1;当表达式2的值为 true 时,执行语句 2,依此类推。
if..else if多分支语句的执行流程如下图 :
例3.4
package jay;//包名
import java.util.Scanner;//导入输出函数需要用到的包
public class zy {//创建类
public static void main(String[] args) {//主函数
// TODO Auto-generated me