Java基础(五)流程控制语句

5-1 编写程序,用尽可能少的语句判断一个整数是否闰年,是返回true,否返回false。

只要满足一个条件就是闰年:
1. 能被4整除,但不能被100整除
2. 能被400整除

package practice;

import java.util.Scanner;

public class LeapYear {

    static boolean judge(int i) {
        if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0)
            return true;
        else
            return false;
    }

    public static void main(String args[]) {
        System.out.println("请输入年份:");
        Scanner scan = new Scanner(System.in);
        int s = scan.nextInt();
        System.out.println(judge(s));
    }
}

5-2 编写程序,打印10以内的杨辉三角。

package practice;

import java.util.Scanner;

public class YanghuiTriangle {
    public static void main(String args[]) {
        System.out.println("请输入行数:");
        Scanner in = new Scanner(System.in);
        int s = in.nextInt();
        int arry[][] = new int[s][s];
        for (int i = 0; i < s; i++) {
            arry[i][0] = arry[i][i] = 1;
            for (int j = 1; j < i; j++)
                arry[i][j] = arry[i - 1][j - 1] + arry[i - 1][j];
        }

        for (int i = 0; i < s; i++) {
            for (int j = 0; j <= i; j++) {
                System.out.print(arry[i][j] + " ");
            }
            System.out.println();
        }
    }

}

5-3 编写程序,判断一个整型数是否是水仙花数。

水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。水仙花数只是自幂数的一种,严格来说3位数的3次幂数才称为水仙花数。

(例如:1^3 + 5^3+ 3^3 = 153)

package practice;

import java.util.Scanner;

public class DaffodilNumber {
    public static void main(String args[]) {
        System.out.println("请输入一个三位数:");
        Scanner in = new Scanner(System.in);
        int i = in.nextInt();
        int a = i / 100;// 获得百位数
        int b = (i / 10) % 10;// 获得十位数
        int c = i % 10;// 获得个位数
        if ((Math.pow(a, 3) + Math.pow(b, 3) + Math.pow(c, 3)) == i) {
            System.out.println(i + "是水仙花数");

        } else {
            System.out.println(i + "不是水仙花数");
        }
    }
}

5-4 π/4=1-1/3+1/5-1/7+…,编写程序,求π的值,直到最后一项的绝对值小于10^(-6)。

package practice;

public class Test8 {
    public static void main(String args[]) {
        double i = 1.0;
        double s = 1.0;
        int f = -1;
        double t = 1.0;
        while (t >= 0.000001) {
            i = i + 2;
            t = 1 / i;
            s = s + t * f;
            f = -f;

        }
        s=4*s;
        System.out.printf("%.2f",s);



    }
}

5-5 编写程序,求100~200之间的素数。

package practice;

public class PrimeNumber {
    public static void main(String args[]) {

        System.out.println("素数有:");
        for (int i = 101; i < 200; i++) {
            boolean isPrime = true;
            for (int j = 2; j < i; j++) {
                if (i % j == 0) {
                    isPrime = false;
                }
            }
            if (isPrime) {
                System.out.println(i);
            }
        }
    }
}

5-6 下列程序能否编译通过,如果可以,输出是什么;如果编译错误,请修正。

    int x = 2;
        switch (x) {
        case 1:
            System.out.println("One");
            break;
        case 2:
            System.out.println("Two");
        case 3:
            System.out.println("Three");
            break;
        default:
            System.out.println("end");

        }

编译成功
输出:
Two
Three

5-7 下列程序能否编译通过,如果可以,输出是什么;如果编译错误,请修正。

int x = 0, y = 0;
        outer: for (x = 1; x < 5; x++) {
            inner: for (y = 1; y < 5; y++) {
                System.out.println("x=" + x + ";y=" + y);
                if (x % 2 == 0)
                    continue outer;

            }
        }

编译成功
输出:
x=3;y=1
x=3;y=2
x=3;y=3
x=3;y=4
x=4;y=1

5-8下列程序能否编译通过,如果可以,请判断输出的结果;如果编译错误,请修正。

    int i=5;
        if(i<10)
        System.out.println("i");
        System.out.println("<");
        System.out.println("10");
        else
        System.out.println("i>=10");

编译错误,修改如下:

    int i = 5;
        if (i < 10) {
            System.out.println("i");
            System.out.println("<");
            System.out.println("10");
        } else
            System.out.println("i>=10");

5-9 下列程序能否编译通过,如果可以,请判断输出的结果;如果编译错误,请修正。

int i, j, k;
        for (i = 0; i < 3; i++) {
            for (j = 1; j < 4; j++) {
                for (k = 2; k < 5; k++) {
                    if ((i == j) && (j == k))
                        System.out.println(i);
                }
            }
        }

编译成功,输出:
2

5-10 下列程序能否编译通过,如果可以,请判断输出的结果;如果编译错误,请修正。

    int i = 4;
        for (int i = 3; i < 3; i++) {
            System.out.println(i);
        }

编译错误,修改为:

int i = 4;
        for (int i1 = 3; i1 < 3; i1++) {
            System.out.println(i1);
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值