Math类中的random用法
Math.random()方法用于产生一个0到1之间的double类型的随机数,但是不包括1。
例子:int i=(int) (5*Math.random());//产生0-5之间闭区间的随机整数
switch
switch语句会根据表达式的值从case标签处开始执行,而break是表示结束了switch语句
case标签在JDK1.5之前必须是整数(除去long)或者枚举,不能是字符串,在JDK1.7之后允许使用字符串。
主要用于多值判断,可以被if-else完全替代。
带标签的break和continue
package text;
public class text01 {
public static void main(String[] args) {
//打印101-150之间所有的质数
outer: for(int i=101;i<150;i++) {
for(int j=2;j<i/2;j++) {
if(i%j==0) {
continue outer;
}
}
System.out.println(i+"");
}
}
}
语句块
也叫复合语句,用花括号括起来的任意数量的简单java语句。
块确定了局部变量的作用域;块中的程序代码作为一个整体要被一起执行。
块可以被嵌套在另一个块中,不能再两个嵌套的块内声明同名的变量。
语句块可以使用外部的变量,而外部的变量不能使用语句块中定义的变量
方法
是一段用来完成特定功能的代码片段——类似于C语言的函数
return的作用:1.结束方法的运行 2.返回值
注:
1.实参数目,数据类型和次序必须和所调用的方法声明的形式参数列表匹配
2.Java中进行方法调用中传递参数时,遵循值传递的原则——传递的都是数据的副本
3.基本类型传递的是该数据值的复制值
4.引用类型传递的是该对象引用的复制值,指向同一个对象
方法的重载
每个方法都是完全不同的方法,只是名称相同——参数类型,个数,顺序不同都是不同的方法;
而只有返回值或者是参数名称不同,不构成重载
static 修饰的方法,主函数可以直接进行调用
package text;
public class text02 {
public static void main(String[] args) {
System.out.println(add(3,5));
}
public static int add(int a,int b) {
int sum=a+b;
return sum;
}
}
递归算法详解——递归和迭代效率测试
递归就是自己调自己
递归结构包括两个部分:
1.定义递归头(没有递归头则会进入死循环)
2.定义递归体
缺陷:程序虽然简单,递归会占用大量的系统堆栈,内存耗用多,再递归调用层次多时速度要比循环慢的多
注意:用递归解决的问题,都可以用迭代解决,不强调效率时可以采用递归