网站建设厘金手指排名二二,长沙建设工程信息网,合肥seo排名优化公司,网站上的通话功能怎么做复习一天有点忘了的知识#xff1a;
结构化编程
结构化程式设计(英语:Structured programming)是1960年代开始发展起来的一种编程典范。它采用子程序、程式码区块、for循环以及while循环等结构来取代传统的goto。
指导思想
自顶向下、逐步求精、模块化
编程过程
流程图是…复习一天有点忘了的知识
结构化编程
结构化程式设计(英语:Structured programming)是1960年代开始发展起来的一种编程典范。它采用子程序、程式码区块、for循环以及while循环等结构来取代传统的goto。
指导思想
自顶向下、逐步求精、模块化
编程过程
流程图是流经一个系统的信息流、观点流或部件流的图形代表。在企业中流程图主要用来说明某一过程。这种过程既可以是生产线上的工艺流程也可以是完成一项任务必需的管理过程。
常见的绘制工具有Visio、PowerDesigner等。
1、圆角矩形表示“开始”与“结束”。
2、矩形表示行动方案、普通工作环节用
3、菱形表示问题判断或判定审核/审批/评审环节
4、用平行四边形表示输入输出
5、箭头代表工作流方向 推荐工具ProcessOn 支持流程图、思维导图、原型图、UML、网络拓扑图、组织结构图等
结构化编程的推论
任何复杂的问题都可以三种基本算法结构来描述顺序、选择、循环。因此用计算机语句描述的程序也包含三种基本结构
条件分支语句 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 说明允许多个if之间进行相互嵌套
需求要求输入学生性别如果false则显示女
Scanner sc new Scanner(System.in);
boolean bb sc.nextBoolean();
if (bb false) { //判真一般用法为if(bb){} 判假 if(!bb){}System.out.println(性别为女);
}要求输入学生成绩假设成绩都是整数如果60显示及格否则显示不及格
Scanner sc new Scanner(System.in);
int score sc.nextInt();
if (score 60) {System.out.println(成绩及格);
} else {System.out.println(成绩不及格);
}要求输入学生成绩假设成绩都是整数如果85显示优秀如果70显示良好如果60显示及格否则显示不及格
Scanner sc new Scanner(System.in);
int score sc.nextInt();
if (score 85){
//这里的顺序不能调整因为条件成立后则立即执行代码块执行结束则自动跳出if不会继续判断System.out.println(成绩优秀);
} else if(score70) {System.out.println(成绩良好);
} else if(score60){System.out.println(成绩及格);
} else {System.out.println(成绩不及格);
}修改代码
if (score 70) {System.out.println(良好);
} else if (score 85) {
//这里的代码永远不会有执行机会。因为这里的if条件实际上是一个复合条件if(score70 score85){}System.out.println(优秀);
} else if (score 60) { //score70 score85 score60System.out.println(及格);
} else {System.out.println(不及格);
}开关分支语言switch
语法 switch(表达式){ case 值1 判断表达式的值是否在值1如果相等则执行代码块1代码块1 break; 执行完成后如果没有break则自动执行后续语句但是不进行判定。如果有break则立即中断switch的执行跳到switch块的下一局继续执行多个case语句:... ...default:如果所有的case都不能成立则执行代码块n代码块n; break;} 语法点 表达式的计算结果可以是整型【不允许long类型】,可以是char同时允许是字串类型[String] 也可以是枚举类型 case值类型必须和switch条件类型相同或者能隐式转换为switch表达式类型 case值必须唯一不能与其它的重复 default的位置没有特殊要求但是一定是所有的case值不相等时才会执行。但是为了增强可读性所以一般建议写在所有的case之后
需求输入月份显示对应的本月的天数
System.out.println(请输入月份:);
Scanner sc new Scanner(System.in);
int m sc.nextInt();
switch (m) {case 1:case 3:case 5:case 7:case 8:case 10:case 12:System.out.println(本月31天);break;case 2:System.out.println(请输入年份:);int year sc.nextInt();if ((year % 4 0 year % 100 ! 0) || year % 400 0) {System.out.println(本月29天);} elseSystem.out.println(本月28天);break;case 4:case 6:case 9:case 11:System.out.println(本月30天);break;default: //default写在switch内部的任何位置上实际都不会影响执行逻辑但是不建
议因为会影响可读性System.out.println(月份错误!);break;}
}三目运算符
三目条件运算符规则是完全一致的使用的形式是 x ? yz;
需求要求输入两个整数输出最大的整数
使用if判断的实现方式
public class Test1 {public static void main(String[] args) {Scanner sc new Scanner(System.in);System.out.println(请输入第一个整数:);int num1 sc.nextInt();System.out.println(请输入第二个整数:);int num2 sc.nextInt();int max num1;if (max num2)max num2;System.out.println(两个整数(num1,num2)中最大的值为:max);sc.close();}
}使用三目运算符实现
Scanner sc new Scanner(System.in);
System.out.println(请输入第一个整数:);
int num1 sc.nextInt();
System.out.println(请输入第二个整数:);
int num2 sc.nextInt();/** if(num1num2) maxnum1;* else maxnum2;*/
int max num1 num2 ? num1 : num2;
System.out.println(两个整数(num1,num2)中最大的值为:max);
sc.close();要求表达式1必须返回值为boolean类型 要求表达式2和表达式3的返回值类型一致 System.out.println(mn?123:“abc”); 正确 Object max num1 num2 ? num1 : num2;
题目:
int k100;
int m99;
int resk100?m:m;
System.out.println(res);
//100 k100不成立则直接执行m而和表达式2m无关不会执行
System.out.println(m); //100循环结构
循环就是重复做某一件事情。在Java程序中循环控制即在某一情况下控制程序重复执行某一条或多
条语句直到遇到终止条件为止
循环语句也称迭代语句在Java语言中存在的while、for和do-while循环语句
while循环
while是Java中最基本的循环语句满足条件才执行循环体如果不满足条件则不执行。所以有可能循环体一次都不执行。
语法
while(条件){循环体;} 当条件成立时反复执行循环体每执行一次判断一次条件。
int res0;//累加器用于存放每次循环体的执行结果
int k1;//控制循环次数
while(k101){resresk;k;
}
System.out.println(123...100res);int res 0;// 累加器用于存放每次循环体的执行结果
int k 0;// 控制循环次数
while (k 100)res k;
System.out.println(123...100 res);int res 0;// 累加器用于存放每次循环体的执行结果
int k 1;// 控制循环次数
while(true){//这个写法一般用于没有很明确的次数控制时resk;if(k100)break; //当满足条件则跳出while循环体
}
System.out.println(123...100res);没有很明确的次数控制
需求要求输入一个合法的年龄值【和业务需求相关】
int age0;
while(true){ System.out.println(请输入学生年龄);agesc.nextInt();if(age18 age24)break;elseSystem.out.println(您输入的是age,这是一个不合法的年龄);
}需求计算所有100以内奇数的和
int res0; //累加器
int k0; //循环控制变量
while(k101){if(k%21)resk;
}
System.out.println(135...99res);break和continue的用法
int res0;
int k0;
while(true){if(k100){break; //跳出循环体执行循环体后的语句}if(k%20){
//如果是偶数不进行累加操作而是从新开始后续的循环continue之后的语句不执行从头开始下次循环continue; //终止本次循环立即进入下次循环} else{resk; //resresk}System.out.print(k);
}
System.out.println(res);break和continue的区别 break是立即终止循环进入循环结构的后续代码继续执行,循环体执行结束 continue是终止本次循环进入下次循环循环并没有执行结束
do/while循环
语法
do{循环体;}while(条件); 先执行循环体然后进行条件判断如果条件为true则执行下次循环如果条件为false则终止循环。
不同于while循环的点do/while循环至少执行循环体一次而while循环有可能一次都不执行。
int res0;
int k1;
do {resk; //resresk;k;
} while (k 101);
System.out.println(res);for循环
语法for(表达式1表达式2表达式3){循环体;} 执行表达式1 执行表达式2一般表达式2是一个条件如果条件为true则执行循环体如果条件为false则终止循环 执行循环体 执行表达式3 执行第2步骤
for循环一般用于可以明确循环次数的场景中while循环一般用于不能预先确定循环执行次数的场景中do/while循环一般用于不能预先确定循环执行次数同时要求循环体至少执行一次的场景中
int res0;
for(int i1;i100;i){ resi;
}
System.out.println(res);自定义步长值
int res0;
for(int i1;i101;ii2) { //2就是步长值 resi;
}
System.out.println(1357...99res);省略表达式的写法
int k1;
for(;k101;k) resk;int k1;
for(;k101;) resk;int k1;
for(;;) {resk;if(k100) break;
}练习题
1、计算输入数据的阶乘值
System.out.println(请输入整数:);
Scanner scnew Scanner(System.in);
int kksc.nextInt();
int res1;
for(int k1;kkk;k){res*k;//resres*k
}
System.out.println(kk!res);2、互换两个数的值不允许使用中间变量 建立临时变量 加减运算交换 位运算方法
//第一个数num110 第二个数为num26
num1num1num2; //num116 num26
num2num1-num2; //num210 mum116
num1num1-num2; //num16 num210String的操作
基础操作后续在面向对象章节细讲
String 类的构造方法很多。可以通过初始化一个字符串或者字符数组或者字节数组等等来创建一个String 对象
常见方法 length() 获取字符个数 强调:是方法不是属性 substring(int)/(int,int) 求指定范围的字符串子串 charAt(int index):char indexOf(int ch) 和 indexOf(int ch, int fromIndex) 方法 equals(String):boolean比较两个字符串的内容是否相等 trim()
考试常见方法intern() 方法
String s1abc;
String s2abc;
System.out.println(s1s2); //true字符串常量拼接在方法区的常量池中完成
String s0ab;
String s1s0c;
String s2abc;
System.out.println(s1s2); //falseString类型的拼接是通过StringBuilder类中的append方法实现的然后返回toString的结果。是在堆中的新对象
字符串转数字
使用Scanner读取键盘录入数据
next():String 当光标扫描到第一个分隔符默认是空格停止扫描会创建一个String类的对象里面存储的就是扫描的内容不包含空格分隔符返回创建的String对象的引用给n
Scanner cinnew Scanner(System.in);
while (true) {String n cin.next();if(exit.equals(n))break;System.out.println(n A);
}
cin.close();nextLine():读取输入包括单词之间的空格和除回车以外的所有符号(即。它读到行尾)。读取输入后nextLine()将光标定位在下一行。所以它和next()的区别就是它没有分隔符直接扫描全部的键盘输入内容并创建对象进行将其引用返回 目标类型名.parse类型(String) Integer.parsetInt(String):int Double.parsetDouble(String):double
数字转字符串
“”任意类型数据
字符串新方法 String.repeat(int) 根据 int 参数的值重复 String String.lines() 拆分由其行终止符在其上调用的 String 并返回由这些行终止符划分的 Strings Stream 具体使用以后再说 String.strip() 、 String.stripLeading() 和 String.stripTrailing() 去除字符串的空格 String.isBlank() 判断String是否为空或仅包含空格字符
具体实现原理
在JDK1.8以前采用char[]实现现在采用byte[]的方式实现。可以减少字符串占用的内存同时减少垃圾回收次数。
实际开发中单字节的字符使用频率远高于双字节的。在JDK8版本中Java会根据字符串内容自动设置为相应的编码要么 Latin-1要么UTF16中文是两个字节纯英文是一个字节。
不使用UTF-8编码字符集是因为UTF-8是变长编码的有1、2、3、4字节的不同情况所以对于String随机访问操作很不方便
UTF-16也是变长编码是使用2或者4个字节存储字符。对于Unicode编码在0-FFFF之间的字符使用两个字节存储而10000-10FFFF之间的字符使用4个字节。但是Java中一个char就是2个字节同时String的各种操作都是以Java字符为单位的所以UTF-16在Java中可以看作一个定长的编码