(2)Java中控制结构

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,23,5,8...40个数的值。数列满足递推公式:F1=1F2=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);
    }

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值