Java中的循环 方法
2016-08-05 14:42
239 查看
目录
目录循环
while
do while
for循环
案例
方法
组成
传递
递归
循环
while
初始化 while(循环条件){ 循环体 迭代 }
初始化 while(循环条件, 迭代){ 循环体 }
public static void main(String[] args){ //初始化 byte b = 5; byte c = 0; //循环条件 while( b != 0){ //循环体 c += 10; //迭代部分 b--; } System.out.println((char)c); System.out.println(b); }
do while
注: 无论循环条件是真是假, 都必须执行一次初始化 do { 循环体 } while(循环条件, 迭代);
for循环
for(初始化; 条件; 迭代){ 循环体 }
注: for循环的条件部分不写, 默认为true
优势: 对变量的生命周期有控制, 即初始化的变量只能在for循环体内部使用
break: 跳出指定的循环, 如没有指定则跳出当前循环
continue: 跳出指定本次循环, 如没有指定则跳出当前本次循环
案例
查找100以内的素数//判断素数 public class Demo03{ public static void main(String[] args){ //总数 int sum = 0; int count = 0; _L: //是否为素数的判定条件 for(int i = 2; i <= 100; i++){ //boolean isPrime = true; for(int j = 2; j <= Math.sqrt(i); j++){ count++; if(i % j == 0){ //isPrime = false; continue _L;//终止外层的本次循环 } } sum++; //if(isPrime){ // sum++; // System.out.print(i + " "); //} } System.out.println("\n100以内素数的总数为: " + sum); System.out.println("count=" + count); } }
注意优化的部分: 去掉注释掉的boolean标记, 该用continue终止外层本次循环
方法
组成:
[注解] [修饰符] 返回值类型[泛型定义] 方法名(参数列表) [throws异常声明] 方法体可以修饰方法的修饰符:
abstract
final
native
private, protected, public
static
strictfp
synchronized
静态方法不能被重写
传递:
//值传递, 不会改变外面的值 private static int add(int i, int j){ return i + j; } //引用传递, 会改变外面的值 private static void swap(int[] i, int[] j){ int temp = i[0]; i[0] = j[0]; j[0] = temp; }
递归:
注: 跟循环一样, 一定会有一个出口Fibonacci数列
递归方法
private static int fibonacci(int num){ //跳出递归的条件 if(num == 1 || num == 2){ return 1; }else{ return fibonacci(num - 2 ) + fibonacci(num - 1); } }
非递归方法
int num1 = 1; int num2 = 1; for(int k = 3; k <= 7; k++){ int temp = num1 + num2; num1 = num2; num2 = temp; } System.out.println(num2);
注: 能用循环的地方就不要使用递归
相关文章推荐
- Java安装 基本类型 分支语句
- 详细位置搜索ubuntu系统jdk安装的默认路径
- eclipse编码配置和插件安装记录
- No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
- Myeclipse快捷键大全(按快捷键分类)
- 深入理解Java虚拟机之java内存
- 我有一个集合,如下,请问,我想判断里面有没有"world"这个元素,如果有,我就添加一个"javaee"元素,请写代码实现。
- java队列
- 一段代码搞懂关于Java中List、Set集合及Map的使用
- Java实现Dubbo服务提供者及消费者注册
- 冒泡排序
- java学习
- java案例之-三国斗地主
- Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
- SSH系列:(6)整合Spring和Struts
- HashMap源码解析 给jdk写注释系列之jdk1.6容器(4)
- springmvc+maven
- springMVC如何使用@RequestParam传递数组类型参数
- java多线程监听JMS、MQ队列
- Java反射第二课 动态加载类