Java基础-结构化程序设计

结构化程设计

结构化程序设计的原则可表示为:程序=(算法)+(数据结构)
结构化程序设计的三种基本结构是:顺序结构、选择结构和循环结构。

顺序结构

顺序结构表示程序中的各操作是按照它们出现的先后顺序执行的。
Java的基本结构就是顺序结构,除非特别指明,否则就都按照先后顺序一句一句执行,它是最简单的算法结构。
在这里插入图片描述
语句与语句之间都是按照从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,顺序结构是任何一个算法都离不开的一种基本算法结构

package cn.ara.structure;

//顺序结构演示
public class Order {
    public static void main(String[] args) {
        System.out.println("111");
        System.out.println("222");
        System.out.println("333");
        System.out.println("444");
        System.out.println("555");
    }
}

这个程序中,代码就是一句一句的从上至下依次执行的,打印结果如下:
111
222
333
444
555
就是按照我们所编写的代码的顺序执行的,这个就是程序的顺序结构。

选择结构

选择结构表示程序的处理步骤出现了分支,它需要根据某一特定的条件选择其中的一个分支执行。

if选择结构

if单选择结构

当我们需要判断一个东西是否可行,如果可行我们就会执行一些语句的时候,我们就会用if单选择语句来表示,语法如下:

if(布尔表达式){
	//如果布尔表达式的值为true时将执行的语句
}

在这里插入图片描述

//声明Scanner对象
Scanner scanner = new Scanner(System.in);

//判断输入是否为整数
if (scanner.hasNextInt()) {
    int i = scanner.nextInt();
    System.out.println("你输入的整数为:" + i);
}

//关闭输入流对象
scanner.close();

对于上述的代码,当我们输入为整数数据时,就会执行if结构中的语句,否则,就不会执行if结构中的语句。

if双选择结构

当我们需要判断一个东西是否可行,如果可行我们就需要执行一段语句,如果不可行我们就需要执行另一段语句时,我们就会用if双选择语句来表示,语法如下:

if(布尔表达式){
	//如果布尔表达式的值为true时将执行的语句
} else {
	//如果布尔表达式的值为false时将执行的语句
}

在这里插入图片描述

//声明Scanner对象
Scanner scanner = new Scanner(System.in);

//判断输入是否为整数
if (scanner.hasNextInt()) {
    int i = scanner.nextInt();
    System.out.println("你输入的整数为:" + i);
} else {
    System.out.println("你输入的不是整数");
}

//关闭输入流对象
scanner.close();

还是上述的程序,我们做了一些改进,当输入为整数时,输出你输入的整数为:(输入的整数),否则输出你输入的不是整数

if多选择结构

当我们需要判断一个东西是否满足多种不同的条件,如果条件一满足我们就需要执行语句一,如果条件二满足我们就需要执行语句二,如果条件三满足我们就需要执行语句三 … 我们就会用if多选择语句来表示,语法如下:

if(条件1){
	//条件1满足时执行
}else if(条件2){
	//条件2满足时执行
}else if(条件3){
	//条件3满足时执行
}
...
else{
	//上述条件都不满足时执行
}

在这里插入图片描述

//声明Scanner对象
Scanner scanner = new Scanner(System.in);

System.out.println("请输入成绩(0-100):");

//获得输入成绩
int score = scanner.nextInt();

//判断成绩
if (score <= 100 && score >= 90) {
    System.out.println("优");
} else if (score < 90 && score >= 80) {
    System.out.println("良");
} else if (score < 80 && score >= 60) {
    System.out.println("及格");
} else if (score < 60 && score >= 0) {
    System.out.println("不及格");
} else {
    System.out.println("成绩不合法");
}

//关闭输入流
scanner.close();

这里的程序就会根据用户输入的不同数据而执行不同的语句。

if语句是可以嵌套的,嵌套时注意程序的整体结构,{}需要对应,下面代码是对上面代码的改进版本:

//声明Scanner对象
Scanner scanner = new Scanner(System.in);

System.out.println("请输入成绩(0-100):");

//判断输入是否合法
if (scanner.hasNextInt()) {
    //获得输入成绩
    int score = scanner.nextInt();

    //判断成绩
    if (score <= 100 && score >= 90) {
        System.out.println("优");
    } else if (score < 90 && score >= 80) {
        System.out.println("良");
    } else if (score < 80 && score >= 60) {
        System.out.println("及格");
    } else if (score < 60 && score >= 0) {
        System.out.println("不及格");
    } else {
        System.out.println("成绩不合法");
    }
}else{
    System.out.println("请输入正确数据");
}
//关闭输入流
scanner.close();

switch选择结构

Java中的switch case语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。它的基本结构为:

switch(表达式){
	case value1:
		//语句1
		break;//可选
	case value2:
		//语句2
		break;//可选
	...
	case valuen:
		//语句n
		break;//可选
	default: //可选
		//语句n+1
}

表达式的值支持char,byte,short,int和它们的包装类Character,Byte,Short,Integer,和String(从Java SE 7开始支持String类型),enum。

case语句中的value值应该与对应的switch语句的表达式的值一致,当switch表达式的值“命中”某条case语句的值时,就会执行对应case语句中的代码,然后按照顺序结构来执行,直到break语句出现或者switch语句的结束来结束这个switch语句。

break语句表示结束,中止的意思,它在switch语句中表示结束这个switch语句,它在switch语句中一般都会与case配对,如不配对,就可能会出现case穿透现象。

default语句不需要vaule值,因为它只有它对应的switch的表达式未“命中”case语句或者“命中”后未“遇见”break语句时执行。

char grade = 'A';

switch (grade) {
    case 'A': //匹配到A执行
        System.out.println("优");
        break; //结束switch语句
    case 'B': //匹配到B执行
        System.out.println("良");
        break;
    case 'C': //匹配到C执行
        System.out.println("及格");
        break;
    case 'D': //匹配到D执行
        System.out.println("不及格");
        break;
    default: //未匹配到时执行
        System.out.println("等级有误!");
}

上述代码会根据grade值的不同执行不同的代码。

case穿透:因为switch表达式命中case语句之后,如果后续并未遇到break语句,它就会按照顺序结构执行下去,这个现象就称作case穿透(上述代码中去掉break就可明显观察到case穿透现象)。

循环结构

循环结构表示程序反复执行某个或某些操作,直到某条件为真(或为假)时才可终止循环。

while循环

在Java中,while是最基本的循环,它的结构为:
在这里插入图片描述
其Java语法为:

while(布尔表达式){
	//循环内容
}
  • 只要布尔表达式的值为true,这个布尔表达式就是循环条件,只要它一直满足条件,它就会一直循环。
  • 大部分情况下都会让循环结束,我们就需要有一个让表达式为false的时候。
int i = 1;
while (i <= 100) { //当i小于等于100时执行
    System.out.println(i);
    i++; //自增 
}

上述代码就是打印1~100的循环结构。

do while循环

do while的结构为:
在这里插入图片描述
其Java语法为:

do{
	//循环代码
} while(布尔表达式);

do while循环与while循环相似,但唯一不同的是,do while循环至少会执行一次循环代码。

while与do while的区别:

  • while是先判断,后执行。do while是先执行,再判断。

所以说do while会至少执行一次循环语句。

int i = 0;

while (i < 0) {
    System.out.println(i);
    i++;
}

System.out.println("-------------");

do {
    System.out.println(i);
    i++;
} while (i < 0);

其执行结果如下:
-------------
0

我们发现,相对于条件不满足的情况,while未执行循环语句,但是do while执行了一次循环语句,这就是这两个循环的唯一区别。

for循环

for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构。

在这里插入图片描述

其语法格式为:

for(初始化语句; 布尔表达式; 更新语句){
	//循环语句
}

配合上面的流程图,我们就知道for循环的执行流程了,我们这里直接使用例子:

//打印 1~100的整数
for (int i = 1; i <= 100; i++) {
    System.out.println(i);
}

我们可以把这段代码与上述的while循环代码对比,发现我们使用for循环更为简洁。

在Java5之后引入了一种主要用于数组或集合的增强for循环。它的语法格式如下:

for(声明语句 : 遍历对象){
	//代码
}
  • 声明语句:声明新的局部变量,该变量的类型必须和遍历对象的类型相匹配,其作用域限定在循环语句中,其值与此时元素的值相等。
  • 遍历对象:遍历对象的变量名。
int[] array = {1, 2, 3};

for (int i : array) {
    System.out.println(i);
}

上述代码就是遍历数组的增强for循环。

既然选择了远方,留下来的就只能是背影。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值