本文共 4074 字,大约阅读时间需要 13 分钟。
控制语句
结构化编程
结构化程式设计(英语:Structured programming)是1960年代开始发展起来的一种编程典范。它采用子程序、程式码区块、for循环以及while循环等结构来取代传统的goto。
应用代码一般是由三种结构组成:顺序结构、选择结构、循环结构
指导思想
自顶向下、逐步求精、模块化
编程过程
流程图是流经一个系统的信息流、观点流或部件流的图形代表。在企业中,流程图主要用来说明某一过程。这种过程既可以是生产线上的工艺流程,也可以是完成一项任务必需的管理过程。常见的绘制工具有Visio、PowerDesigner等。
1、圆角矩形表示“开始”与“结束”。
2、矩形表示行动方案、普通工作环节用
3、菱形表示问题判断或判定(审核/审批/评审)环节
4、用平行四边形表示输入输出
5、箭头代表工作流方向
结构化编程的推论
任何复杂的问题都可以三种基本算法结构来描述:顺序、选择、循环。因此用计算机语句描述的程序也包含三种基本结构
条件判断结构
选择结构用于判断给定的条件,然后根据判断的结果来控制程序的流程。主要的条件判 断结构有:if 结构和 switch 结构。而 if 结构又可以分为 if 单分支结构、if-else 双分支结构、 if-else if-else 多分支结构。
语法: if(条件判断语句){代码A;}当条件成立时执行代码A,如果条件不成立则不执行代码A,而是直接执行if的下一句
if(条件){代码块1;}else{代码块2;}当条件成立时执行代码块1,如果条件不成立则执行代码块2。没有一种情况是同时执行代码块1和2 if(条件1){代码块1;}else if(条件2){代码块2;}...else{代码块n;}当条件1成立时执行代码块1,如果条件1不成立继续判断条件2,如果条件2成立则执行代码块2,依次类推。没有一种情况是同时执行代码块1和2
需求:要求输入学生性别,如果false则显示女的啊
boolean sex=true;Scanner sc=new Scanner(System.in);sex=sc.nextBoolean();if(sex){ //这里是一个简化写法,实际上就是true==sex System.out.println("男");}else //如果代码块中只有一条语句时,{}可写可不写 System.out.println("女");
switch 多分支结构
语法结构:
switch (表达式) {case 值 1:语句序列 1;[break];case 值 2:语句序列 2;[break]; … … … … …[default:默认语句;]}
语法点:
需求:输入月份,显示对应的本月的天数
package cutestFox01;import java.util.Scanner;public class Test002 { public static void main(String[] args) { //公历闰年遵循的规律为: 四年一闰,百年不闰,四百年再闰. int res = 0; Scanner sc = new Scanner(System.in); System.out.println("请输入月份:"); int month = sc.nextInt(); System.out.println("请输入年份:"); int year = sc.nextInt(); switch (month) { case 2: if((year%4==0&&year%100!=0)||year/400==0) { res = 29; }else res = 28; break; case 1: case 3: case 5: case 7: case 8: case 10: case 12: res = 31; break; case 4: case 6: case 9: case 11: res = 30; break; default: res =-1; break; } System.out.println(year+"年"+month+"月份有:"+res+"天"); }}
要求输入学生成绩(假设成绩都是整数),如果>=80显示优秀,如果>=70显示良好,如果>=60显示及格,否则显示不及格
public class Test3 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int score=sc.nextInt(); int key = score / 10; String res=null; switch (key) { case 10: case 9: case 8: res="优秀"; break; case 7: res="良好"; break; case 6: res="及格"; break; default: res="不及格"; break; } System.out.println("学生成绩为:"+score+"评级为:"+res); }}
循环结构
循环就是重复做某一件事情。在Java程序中,循环控制即在某一情况下,控制程序重复执行某一条或多条语句,直到遇到终止条件为止
循环语句也称迭代语句,在Java语言中存在的while、for和do-while循环语句
循环结构分两大类,一类是当型,一类是直到型。
当型: 当布尔表达式条件为 true 时,反复执行某语句,当布尔表达式的值为 false 时才停 止循环,比如:while 与 for 循环。
直到型: 先执行某语句, 再判断布尔表达式,如果为 true,再执行某语句,如此反复,直 到布尔表达式条件为 false 时才停止循环,比如 do-while 循环。
while循环
while是Java中最基本的循环语句,满足条件才执行循环体,如果不满足条件则不执行。所以有可能循环体一次都不执行。
语法:while(条件){循环体;}当条件成立时反复执行循环体,每执行一次判断一次条件。
package cutestFox01;public class Test003 { public static void main(String[] args) { int res = 0; int x = 1; while(x<=100) { res = res+x; x++; } System.out.println(res); }}
需求:计算所有100以内奇数的和
public class Test{ public static void main(String[] args){ int res=0; int k=1; while(k<100){ res+=k; k=k+2; } System.out.println(res); }}
do/while循环
语法:do{循环体;}while(条件); 先执行循环体,然后进行条件判断,如果条件为true,则执行下次循环;如果条件为false则终止循环。
不同于while循环的点:do/while循环至少执行循环体一次,而while循环有可能一次都不执行
package cutestFox01;public class Test006 { public static void main(String[] args) { int res = 0; int k = 1; do { res +=k++; }while(k<101); System.out.println(res); }}
for循环
语法:for(表达式1;表达式2:表达式3){循环体;}这里不是逗号
执行表达式1
执行表达式2,一般表达式2是一个条件,如果条件为true则执行循环体;如果条件为false则终止循环
执行循环体
执行表达式3
执行第2步骤
for 循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构。for 循环在第 一次反复之前要进行初始化,即执行初始表达式;随后,对布尔表达式进行判定,若判定结 果为 true,则执行循环体,否则,终止循环;最后在每一次反复的时候,进行某种形式的“步 进”,即执行迭代因子。
初始化部分设置循环变量的初值
条件判断部分为任意布尔表达式
迭代因子控制循环变量的增减
package cutestFox01;public class Test007 { public static void main(String[] args) { int res = 0; for(int k=0;k<101;k++) { res+=k++; } System.out.println(res); }}
三种循环写法的选择
for循环一般用于可以明确循环次数的场景中
while循环一般用于不能预先确定循环执行次数的场景中
do/while循环一般用于不能预先确定循环执行次数,同时要求循环体至少执行一次的场景中
2020年11月3日
转载地址:http://vgcki.baihongyu.com/