1.三种控制结构是什么?
顺序结果、选择结构、循环结构
2.Math.random()表示什么?如何获取15~20之间的随机数?
产生一个0~1之间的随机数,包含0但不包含1
(int)(Math.random()*6)+15
3.switch语句中,表达式结果需要什么类型,其功能能完全被多重if代替吗?如果是,为什么还需要switch结构?
switch表达式中的结果可以是byte、char、short、int、枚举(jdk1.5加入)、String(jdk1.7加入)
switch的功能可以被多重if代替,
switch一般作多值判断,如果判断条件为区间,最好用多重if来做,如果是等值,最好用switch来做
4.switch语句中,default必须写吗?一个case执行后,什么时候结束执行这个case语句?
default不是必须写的,遇到break是结束执行case语句
5.for循环中的一些应用实例。
package com.review01.circulation;
/*for的用法举例 */
public class ForDemo {
//#######100以内的奇数相加
public static void addOdd() {
int i ;
int sum = 0;
for(i=0; i<=99; i+=2) {
sum += i;
}
System.out.println("奇数和sum="+sum);
}
//#######1至10的阶层相加
public static void addFactorial() {
int sum = 0;
int f = 1;
for(int i=1; i<=5; i++) { //i= 1 2 3 ...
f *= i; //f= 1*1 1*2 1*2*3 ...
sum += f; //sum=1! 1!+2! 1!+2!+3! ...
}
System.out.println("阶层和sum="+sum);
}
//#######输出101~200内的质数
/*质数的含义就是只能被1和自己整除,若能被1至之间任意一个数整除的就一定不是质数,还要注意一点,偶数不是质数*/
public static void findPrime() { //
System.out.println("102~200之间的质数有:");
for(int i=101; i<200; i+=2) {
boolean flag = true; //默认为质数
for(int j=2; j<i; j++) {
if(i%j == 0) {
flag = false; //可以被别的数整除,不是质数,则跳出里层for循环
break;
}
}
if(!flag) {
continue;//不是质数时,需要跳过下面的打印,进入下一次循环,即i+2
}
System.out.print(i+" ");
}
}
public static void main(String[] args) {
addOdd();
addFactorial();
findPrime();
}
}
6.while循环的实例。
package com.review01.circulation;
public class WhileDemo {
//1.输出1~100内前五个能被3整除的数。
public static void divideByThree() {
int i = 1;
int num = 0; //用来计数
while(i<=100) {
if(i%3 == 0) {
System.out.print(i+" ");
num++;
}
if(num == 5) {
break;
}
i++;
}
}
public static void main(String[] args) {
divideByThree();
}
}
7.完成Fibonacci数列的递推算法。
求 Fibonacci数列:1,1,2,3,5,8,...第40个数的值。数列满足递推公式:F1=1,F2=1,Fn=Fn-1+Fn-2。
package com.review01.recursion;
public class Recursion {
//########求Fibonacci数列:1,1,2,3,5,8,...第40个数的值。数列满足递推公式:F1=1,F2=1,Fn=Fn-1+Fn-2。
//用递归的方法
public static long fibonacci(int n) {
if(n==1 || n==2) {
return 1;
}
else {
return fibonacci(n-1)+fibonacci(n-2);
}
}
//用普通方法实现
public static long fibonacci2(int index) {
long f1=1, f2=1 ,f=0;
if(index < 1) {
System.out.println("输入的数据不合法!请输入比1大的整数!");
return -1;
}
if(index==1 || index==2) {
return 1;
}else {
for(int i=1; i<index-2; i++) {
f = f1 + f2;
f1 = f2;
f2 = f;
}
return f;
}
}
public static void main(String[] args) {
int x = 40;
long n = (long)(fibonacci(x));
long n2 = (long)(fibonacci2(x));
System.out.println("递归方法计算出的Fibonacci数列中第"+x+"个数是:"+n);
System.out.println("普通方法计算出的Fibonacci数列中第"+x+"个数是:"+n);
}
}