职业培训《平面设计速成,从小白到大神》
《平面设计速成,从小白到大神》带你快速学会平面设计。...
2023-07-31
流程控制语句对任何一门编程语言都是非常重要的,Java中基于流程控制程序执行的不同步骤和代码块。
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 ; }}节点案例,测试结果描述:
注意:在流程控制语句中必须使用大括号,即使只有一行代码,避免采用单行的编码方式,这是基础规范。在上面的测试节点4和5,代码看着就感觉扎心。
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层的的逻辑判断代码可以使用卫语句、策略模式、状态模式等来实现。
流程描述: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循环。
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); } }}节点案例,测试结果描述:
注意:越是基础的东西,学起来越难,for语句作为很多算法实现的基础控制,理解起来相当的绕。
while循环语句首先判断条件是否成立,成立才执行循环体;
do···while循环语句先执行一次循环体,然后判断条件是否成立,所以do···while至少会执行一次;
public class Process05 { public static void main(String[] args) { int num1 = 1; int num2 = 1; // while循环 while(num1 <= 3) { System.out.println("num1 == " + num1); num1++; } // do...while循环 do { System.out.println("num2 == " + num2); num2++; } while(num2 <= 3); }}注意:while循环在实际的开发中,因为极其容易导致死循环,所以使用并不多。
Java中有三种流程中断语句,关键字分别为break、continue、return语句。
Java中最常用的流程控制关键字,当执行return语句后,从该方法返回,返回到调用该方法的业务流程中。
public class Process06 { public static void main(String[] args) { System.out.println(getNum1()); System.out.println(getNum2()); } public static int getNum1 (){ int a =100; try{ return a+1; // 这里是运算逻辑,非赋值 }catch(Exception e){ e.printStackTrace(); }finally{ return a; } } public static int getNum2 (){ int a =100; try{ return a++; // a++ -> a=a+1 此时a的值改变 }catch(Exception e){ e.printStackTrace(); }finally{ return a; } }}return 常在位置
break中断语句常用在for、while、do···while循环中,用于退出当前整个循环流程,非当前这一次循环。
public class Process07 { public static void main(String[] args) { for (int i = 1 ; i < 3 ; i++){ if (i == 2){ break ; } System.out.println("i = " + i); } }}Continue中断语句常用在for、while、do···while循环中,用于退出当前这一次循环,进入下一次循环。
public class Process08 { public static void main(String[] args) { for (int i = 1 ; i < 3 ; i++){ if (i == 1){ continue ; } System.out.println("i = " + i); } }}public class Process09 { public static void main(String[] args) { int[] score = {9,8,7,6,5} ; // 排序次数:最多 length - 1 次 for (int i = 0 ; i < score.length -1 ; i ++){ // 当前排序的集合区间,排序完一个数据就放弃一个 for (int j = 0 ; j < score.length - i - 1 ; j++){ // 冒泡排序:把结果大的向后扔 if (score[j] > score[j+1]){ int temp = score[j] ; score[j] = score[j+1] ; score[j+1] = temp ; } } } // 输出排序后的结果集 for (int i = 0 ; i < score.length ; i++){ System.out.print(score[i]); } }}有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
public class Process10 { public static void main(String[] args) { arrange() ; } public static void arrange (){ int i=0; // 百位数 int j=0; // 十位数 int k=0; // 个位数 int t=0; // 计数器 for (i = 1 ; i <= 4 ; i++){ for (j = 1 ; j <= 4 ; j++){ for (k = 1 ; k <=4 ; k++){ if (i != j && j != k && k != i){ t += 1 ; System.out.print(i*100+j*10+k+"--"); } } } } System.out.println(); System.out.println("t="+t); }}基于递归思想的各种计算方法实现。
public class Process11 { public static void main(String[] args) { System.out.println(getSumOne(100)); System.out.println(getSumTwo(30)); System.out.println(getSumThree(5)); } /** * 使用递归的方式计算1+2+...+100 */ public static int getSumOne (int i){ // 传入100 int sum ; if (i == 1){ return 1 ; } else { sum = i + getSumOne(i - 1) ; } return sum ; } /** * 一列数的规则如下: 1、1、2、3、5、8、13、21、34... * 求第30位数是多少, 用递归算法实现 */ public static int getSumTwo (int i){ // 传入第几位数下标 if (i <= 0){ return 0 ; } else if (i == 1 || i == 2){ // 处理前面2位的1,1 return 1 ; } else { // 当前位数是前两位之和 return getSumTwo(i - 1) + getSumTwo(i - 2) ; } } /** * 1*2*3*...*100 递归计算阶乘 */ public static int getSumThree (int i){ if (i == 1){ return i ; } else { return i * getSumThree (i - 1) ; } }}
以上内容就是为大家推荐的java基础算法和结构(详解java常用算法)最佳回答,如果还想搜索其他问题,请收藏本网站或点击搜索更多问题
内容来源于网络仅供参考版权声明:所有来源标注为小樱知识网www.xiaoyin02.com的内容版权均为本站所有,若您需要引用、转载,只需要注明来源及原文链接即可。
本文标题:java基础算法和结构(详解java常用算法)
本文地址:https://www.xiaoyin02.com/shcs/115969.html
相关文章
手机怎么安装qq,支持java的手机怎么安装qq? 用手机的浏览器打开3g.qq.com然后选择QQ找到下载选择品牌机型如果没有的话可以下载通用版根据屏幕尺寸下载...
2023-04-20
手机谷歌怎么设置,小米10谷歌基础服务在设置哪里? 小米十谷歌基础服务,可以通过登录谷歌应用商店就可以了 安卓手机如何设置快捷语录? 1. 打开手...
2023-04-20
手机怎么看中超现场直播,抖音的推荐算法是怎样的? 做抖音一定要有数据思维,否则就算你是生产,这个驴累到死也逃不了割韭菜,首先为什么要有数据...
2023-04-14
热点文章
2021年独生子女补贴新政策是真的吗(独生子女证有有效期吗)
2021年国庆节阅兵仪式几点开始几点结束(2021年国庆节还有阅兵吗)
鼠目寸光一点红是什么生肖动物(鼠目寸光一点红)指什么生肖,紧密
k0到k9的玩法大全(强制gc的玩法和注意事项)
入土为安是什么生肖《入土为安》打一个生肖动物,词语解释
浙江12月底全面停工是真的吗(浙江什么时候放假停工)
如何做t(t怎么把p做哭)
北京口碑最差的三甲医院(北京301医院最擅长什么)