Java基础篇(03):流程控制语句,和算法应用

流程控制语句对任何一门编程语言都是非常重要的,Java中基于流程控制程序执行的不同步骤和代码块。

1、IF条件

IF条件语句会根据不同的判断条件执行不同的语句,if后括号内的条件是否成立关键步骤,IF条件的判断结果必然要是true或false。IF...Else语句则是满足IF条件,就执行相应代码块,否则就执行Elase代码块。

public class Process01 { public static void main(String[] args) { // 演示:Node01 if (compare01(40,30)){ System.out.println("40>30:true"); } else { System.out.println("40>30:false"); } // 演示:Node02 if (compare01(10,20) && compare01(20,30)){ System.out.println("条件成立"); } else { System.out.println("条件不成立"); } // 演示:Node03 if (compare01(20,10) || compare01(20,30)){ System.out.println("条件成立"); } else { System.out.println("条件不成立"); } // 演示:Node04 if(compare02(1,1)) if(compare02(2,2)) System.out.println("Running..."); // 演示:Node05 if(compare01(1,2)) if(compare01(5,3)){ System.out.println("5>3"); } } private static boolean compare01 (int num1,int num2){ System.out.println("判断:num1="+num1+";num2="+num2); return num1 > num2 ; } private static boolean compare02 (int num1,int num2){ System.out.println("判断:num1="+num1+";num2="+num2); return num1 == num2 ; } }

节点案例,测试结果描述:

Node01:如果if条件不成立,则执行else流程或者结束;

Node02:逻辑且判断,任何条件不成立,则直接结束;

Node03:逻辑或判断,任何条件成立,则直接进入分支;

Node04:IF的格式,可以去掉{},后续语句会作为分支;

Node05:IF语句面试题,不会输出任何内容,第二个语句作为分支;

注意:在流程控制语句中必须使用大括号,即使只有一行代码,避免采用单行的编码方式,这是基础规范。在上面的测试节点4和5,代码看着就感觉扎心。

2、IF-Else-IF条件

Else...IF分支语句用于多种情况进行的判断处理,直到分支判断条件成功,执行分支模块代码,如果没有else条件,可以所有分支都不满足,直接结束。

public class Process02 { public static void main(String[] args) { elseIf(11) ; elseIf(9) ; elseIf(5); } private static void elseIf (Integer num){ if (num > 10){ System.out.println("num > 10"); } else if (num > 7){ System.out.println("num > 7"); } else if (num > 4){ System.out.println("num > 4"); } else { System.out.println("num < 4"); } } }

注意:根据条件逐个判断,直到找到第一个满足的条件,不会再继续往下面的判断执行,分支语句执行完毕就会退出当前的else...if流程。超过3层的的逻辑判断代码可以使用卫语句、策略模式、状态模式等来实现。

3、Switch条件

流程描述:switch语句先获取表达式的值,判断表达式的值与case语句后的常量值是否相同,匹配成功则执行该case后的代码块,直到遇到break语句后终止,如果缺失break打断,则继续匹配下一case常量,直到遇到break为止。如果条件全不匹配,则执行default后面的语句。default语句可选,如果不存在default语句,同一个switch语句,case的常量值必须互不相同。

public class Process03 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.print("What day is it today:"); String value = scan.next(); weekInfo(value); } private static void weekInfo (String value){ switch (value) { case "Monday": System.out.println("Monday"); break; case "Tuesday": System.out.println("Tuesday"); break; case "Wednesday": System.out.println("Wednesday"); break; case "Thursday": System.out.println("Thursday"); break; case "Friday": System.out.println("Friday"); break; case "Saturday": System.out.println("Saturday"); break; case "Sunday": System.out.println("Sunday"); break; default: System.out.println("Matching failure"); break; } } }

注意:从JDK1.7之后,switch支持对String字符串的匹配。

二、循环语句

循环语句就是在满足特定条件的情况下,反复执行同个操作。循环语句包括:for循环、while循环、do···while循环。

1、For循环

Java开发中最有用的循环方式,也是诸多算法中的基础控制语句,在常见的很多算法编码实现中,都需要借助for循环方式。

public class Process04 { public static void main(String[] args) { // Node01 int sum = 0; for(int i=1; i<=100; i++) { sum += i; } System.out.println(sum); // Node02 String[] nameArr = {"Java","C++","C#"} ; for (String name:nameArr){ System.out.println("name="+name); } // Node03 // 输出 i = 13 int i = 0; for (i++; i++ < 10; i++); System.out.println(++i); // 输出:j=3 6 9 int j = 0; for (j++; j++ < 10; j++){ System.out.println(++j); } } }

节点案例,测试结果描述:

Node01:for循环作为计算中的常用方式;

Node02:foreach遍历模式,简化循环操作,也可以改写为for语句;

Node03:循环for语句的基础执行机制,两道面试常见题;

注意:越是基础的东西,学起来越难,for语句作为很多算法实现的基础控制,理解起来相当的绕。

2、While循环

while循环语句首先判断条件是否成立,成立才执行循环体;

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wppfgf.html