笔记05 嵌套循环和递归调用
来源:互联网 发布:淘宝店招在线生成 编辑:程序博客网 时间:2024/06/06 05:00
1 switch 多分支选择结构
/*1、选择结构中的: 多分支选择结构语句 (switch语句)1) 格式:switch( 表达式 ) {case 值1 : 语句系列1; [ break; ]case 值2 : 语句系列2; [ break; ]case 值3 : 语句系列3; [ break; ]......case 值n : 语句系列n; [ break; ][default : 语句系列m; ]}2) 规则:先计算表达式的值,再找到与表达式的值对应的case,做它后面所有语句系列,直到遇到 break; 语句时结束整个switch。当遇不到break; 时,则继续做下面的所有语句系列。若找不到与表达式的值对应的case,且 default 项存在时,则做它的语句系列m,之后结束整个switch语句。3) 注意事项:a) 表达式的值必须是 byte 或 short 或 char 或 int 型数据。b) case 后的值1、值2、值3、...、值n均必须是 byte或short或char或int型常量。即: case后必须是常量,不可是变量。c) 当连续的多个case,其后的语句系列相同时,则前n-1个语句系列可以省略。(case穿透)*/public class SwitchTest {public static void main( String[] args ) {//产生一个随机的字母char ch = 'o'; //(char)( 26 * Math.random() + 'a' );String str = "" ; //准备一个str变量来存放结果switch( ch ) {case 'a' : case 'e' : case 'i' : case 'o' : case 'u' : str = "元音" ; break;case 'y' : case 'w' : str = "半元音" ; break;default : str = "辅音" ;}System.out.println("\n产生的随机字母是: \'" + ch + "\'" + ",它属于: " + str ) ;}}
2 for循环
/*1、for循环for( 表达式1 ; 条件; 表达式3 ){循环体;}规则: 先执行表达式1,再去判断条件;条件成立执行循环; 然后,跳到表达式3处执行;之后再去判断条件;若条件仍然成立, 则继续执行循环体;依次下去,直到条件不成立而结束整个for循环。1) 在java语言中,for循环头部的三个表达式可以省略。结论:a) 若省略表达式1,则必须在for循环前声明它。b) 若省略表达式3,则往往将它置于循环体中。c) 若省略表达式2(条件),则往往需要在循环体中用if和break配合实现。2) 在java语言中,for循环头部的三个表达式可以扩展。结论:a) 表达式1扩展往往通过逗号来实现。b) 表达式3扩展也往往通过逗号来实现。c) 表达式2(条件)扩展往往通过逻辑运算符来实现。 */public class ForTest { public static void main(String[] args){ // 编写一个程序,输出九九乘法表; for(int i = 1 ; i <= 9 ; i++ ){ //控制行输出; for(int j = 1; j <= i; j++ ){ if(i*j <10 ){ System.out.print( j + "*" + i + "= " + (i*j) + " " ); }else{ System.out.print( j + "*" + i + "=" + (i*j) + " " ); } } System.out.println();} }
3 嵌套循环
/*1、嵌套为什么需要循环,为什么需要嵌套循环?将一个语句或多个语句需要反复执行时,则使用循环其效率会更高。中心放射法2、顺向去分析、理解这个嵌套循环(也就是嵌套循环的执行顺序)。5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 */public class QuTest4 {public static void main( String[] args ) {char ch = 'a';for( int r = 1; r <= 5; r++ ){for(int k = 1; k <= 5 - r; k++ ){ //总行数 - 第几行System.out.print( " " );}for( int n = 1; n <= r ; n++ ){System.out.print( ch + " ");}System.out.println(); //换行}//System.out.println("" + "AA");}}
4 递归
/*1、什么是递归?定义: 在一个方法的方法体中出现了调用本身的现象。理解: 递是指传递下去,直到末尾的结果(递归的出口);归是指从末尾的结果处一层一层地返回,直到入口处而结束。2、案例: 求 1 + 2 + 3 + ... + 100 = ? 用递归实现分析: 业务是从1 至 100的累加,因此,假设:f( 100 ) == 1 + 2 + 3 + ... + (99) + 100 f( 99 ) == 1 + 2 + 3 + ... + (98) + 99所以,可推出>>>>> f(100) == 100 + f( 99 );又有, f( 1 ) == 1;若再次假设 n == 100 ,则以上式子变为: f( n ) == n + f(n-1);思考: 求 5! ,用递归实现其结果。求 1! + 2! + 3! + ... + 10! = ? 用递归实现,不能出现循环语句。5! 阶乘( 连乘 1 * 2 * 3 * 4 * 5 )*/public class RecallMethodTest {public static void main( String[] args ) {int sum = 0;/*for( int i = 1; i <= 100; i++ ){sum += i;}*/int n = 100;sum = f( n );System.out.println("1 + 2 + 3 + ... + " + n + " = " + sum );}//编写一个 f(n)方法, 用来求1 + 2 + 3 + ... + n 的值。public static int f( int n ){if( n == 1 ) {return 1;//末端,它是递归出口。}else{return n + f( n - 1 ); //在此出现了调用方法本身的现象。}}}
0 0
- 笔记05 嵌套循环和递归调用
- 【C++】函数的嵌套调用和递归调用
- 【转】with as 递归实现嵌套循环
- 利用递归来模拟多重嵌套循环.
- 字符串排列,for循环嵌套递归
- 【郝斌数据结构自学笔记】53-56_一个函数为什么可以自己调用自己_递归必须满足三个条件_循环和递归的比较
- Python学习笔记(嵌套循环)
- 解释循环中的递归调用
- 什么是函数嵌套和递归
- 函数嵌套和函数递归
- 递归和循环
- 数据结构-循环和递归
- 递归和循环
- 尾递归和循环
- 关于递归和循环
- 递归和循环
- 递归和循环
- 递归和循环
- linux系统中Mysql彻底卸载、安装、远程登录设置
- java
- Maven学习 (四) 使用Nexus搭建Maven私服
- 人有疑问可以google、百度,那机器人有问题是否也可以呢?—云机器人是一堆机器人嘛?
- leetcode总结无止境系列之链表
- 笔记05 嵌套循环和递归调用
- Windows CE 设备应用程序里动态引用webservice
- 杭电1176 免费馅饼(数塔dp)
- 程序健壮性
- JAVA 实现XML与JSON 相互转换
- poj 1925
- hdu 3915 Game
- 为什么使用Qt而不是MFC
- 机房收费系统——初画类图(2)