三种算法结构
顺序结构
-
Java的基本结构就是顺序结构,除非特别指明,否则就是按照顺序一句一句执行。
-
顺序结构是最简单的运算结构。
//举例 package struct; public class Order { public static void main(String[] args) { System.out.println("one"); System.out.println("two"); System.out.println("three"); System.out.println("four"); System.out.println("five"); } } //输出结果为: one two three four five
图像形式理解:
语句与语句之间,框与框之间,是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的。
它是任何一种算法都离不开的一种基本算法结构。
选择结构
图像形式理解:
表达式成立,才会去执行后面的·代码才会运行,不成立就是直接跳过
-
if 双选择结构
-
现在有一个要求,公司要收购一个软键,成功了,给人100万元,失败了,自己找人开发
面对这样一个需求,用一个 if 就搞不定了。我们需要有两个判断,需要一个双选择结构
所以就有了 if-else 结构
-
语法:
if(布尔表达式){ //如果布尔表达式为true将执行的语句 }else{ //如果布尔表达式为false将执行的语句 }
图像形式理解:
-
if 多选择结构
-
实际情况还可能存在ABCD,存在区间的多区间判断。包括在生活中我们很多时候的选择也不仅仅只有两个,所以需要一个多选择结构来处理这类问题
-
语法:
if(布尔表达式1){ //如果布尔表达式1为true将执行的代码 }else if(布尔表达式2){ //如果布尔表达式2为true将执行的代码 }else if(布尔表达式3){ //如果布尔表达式3为true将执行的代码 }else{ //如果以上布尔类型都 不为 true将执行的代码 }
-
嵌套的 if 结构
-
使用嵌套的 if else 的语句结构是合法的。也就是说你可以在另一个 if 或者else if 语句中使用 if 或者 else if 语句。你可以像 if 语句一样嵌套 else if else
-
语法:
if(布尔表达式 1){ //如果表达式 1的值为true将执行代码 if(布尔表达式 2){ //如果表达式 2的值为true将执行代码 } }
比如说我们现在有一个需求,需要查找1~100之间的数字。
那么我们就可以用if嵌套来判断(一层套一层),也就是说我们可以把100分成150,50100,
这样要查的数就在这两组之间,一次性,就可以减少50个数的排查量
甚至还可以再细分 : 如果大于什么数,如果小于什么数。
通过这种方式,我们可以减少大量的成本。
-
switch多选择结构
-
多线选择结构还有一种实现方式 switch case 选择语句
-
switch case 语句判断一个变量于一系列值中某个至是否相等,每个值称为一个分支
-
语法:
switch(expression){ case value: //语句 break; case value: //语句 break; //可按需求继续添加擦色语句 default://可以不写 break; }
代码理解:
public static void main(String[] args) { char grade = 'C'; switch(grade){ case 'A': System.out.println("优秀"); break;//代码解释:终止循环(如果是这个符如果表达式的值为true执行代码之后,终止这个循环,循环里其他不为true的就不会再执行了) case 'B': System.out.println("良好"); case 'C': System.out.println("及格"); case 'D': System.out.println("再接再厉"); case 'E': System.out.println("挂科"); default: //代码解释:除此之外(如果以上的值都为false,将执行代码 System.out.println("未知等级"); } } //运行结果为: 及格 再接再厉 挂科 未知等级 /*仔细看代码是不是觉得不对劲啊?明明答案是C 也就是会输出:及格 可是,运行结果其他表达式的值为fals的(不符合条件)居然也有输出:再接再厉、挂科、未知等级 怎么回事呢?这时就要注意到break的作用了!!! 所有的!所有的判断表达式执行代码之后 都要加上break (如10~12行)这样有效使用 终止循环 否则就像上面的运行结果,即使表达式的值为fals,也依然会输出 现在请加上按照描述加上:break; 然后在再次运行 代码没写错的话那么 运行结果为: 及格 */
-
switch 语句中的变量类型可以是:
- byte、short、int或者char;
- 从Java SE 7 开始;
- switch 支持字符串 String 类型;
- 同时 case 标签必须为字符串常量或字面量