【Java学习笔记】控制语句习题集

1、求分段函数的值

/*
    求分段函数的值:
        x < 0 时,F(x) = 0;
        x >=0 时,F(x) = 2x + 1;
*/
public class ControlDemo01
{
    public static void main(String[] args)
    {
        System.out.println("求分段函数的值:");
        System.out.println("x < 0 时,F(x) = 0");
        System.out.println("x >= 0 时,F(x) = 2x + 1");
        System.out.println("\n");
        System.out.println("请输入一个x的值:");
        System.out.print("            x = ");
        double y = 0;
        java.util.Scanner sc = new java.util.Scanner(System.in);
        try
        {
            double x = sc.nextDouble();
            if (x >= 0)
            {
                y = 2 * x + 1;
            }
            System.out.println("F(x) = " + y);
        }
        catch (Exception e)
        {
            System.out.println("您输入的数值格式不正确!");
            System.out.println(e);
        }
    }
}

2、switch语句应用

/*
    用switch语句编写程序,给学生写评语,若学生成绩在60-69则打印“及格”,70-89“良好”,90-100“优秀”,60分以下“不及格”。
*/
import java.util.*;
public class ControlDemo03
{
    public static void main(String[] args)
    {
        System.out.println("-----------欢迎使用本系统给学生写评语-------------");
        System.out.print("请您输入学生的成绩:");
        Scanner sc = new Scanner(System.in);
        double score = sc.nextDouble();
        System.out.println();
        try
        {
            String sign = "";
            switch ((int)score/10)
            {
            case 9: case 10:
                sign = "优秀"; break;
            case 7: case 8:
                sign = "良好"; break;
            case 6:
                sign = "及格"; break;
            case 0: case 1: case 2: case 3: case 4: case 5:
                sign = "不及格";
            default:
                sign = "分数格式不正确!";
            }
            System.out.println("您的分数等级为:" + sign);
        }
        catch (Exception e)
        {
            System.out.println("您输入的成绩格式不正确!");
            System.out.println(e);
        }
    }
}

3、编写程序,输出1到1000之间所有可以被3整除又可以被7整除的数。

public class ControlDemo04
{
    public static void main(String[] args)
    {
        System.out.println("1到1000之间所有可以被3整除又可以被7整除的数有:");
        System.out.println();
        int n = 0;
        for (int i = 1; i <= 1000; i++)
        {
            if (i % 3 == 0 && i % 7 == 0)
            {
                System.out.print(i + "\t");
                n++;
                if (n % 5 == 0)
                {
                    System.out.println();
                }
            }
        }
        System.out.println();
        System.out.println("合计:" + n + " 个");
    }
}

4、编写程序,输出1到10000之间的所有素数,每输出5个换行一次。

public class ControlDemo05
{
    public static void main(String[] args)
    {
        System.out.println("编写程序,输出1到10000之间的所有素数,每输出5个换行一次。");
        System.out.println("结果如下:\n");
        int n = 0;
        String sign = "";
        for (int i = 2; i <= 10000; i++)
        {
            for (int j = 2; j < i; j++)
            {
                if (i % j == 0)
                {
                    sign = "不是素数";
                    break;
                }
            }
            if (sign == "")
            {               
                System.out.print(i + "\t");
                n++;
                if (n % 5 == 0)
                {
                    System.out.println();
                }
            }

            sign = "";
        }
        System.out.println();
        System.out.println("合计:" + n + "个");
    }
}

5、编写一个程序,由命令行输入年份,判断该年份是平年还是闰年,并打印出相应的结果。

/*
提示:判断闰年的规律:1、能被4整除而不能被100整除;2、能被400整除。
        (四年一闰,百年不闰,四百年再闰)
*/
import java.util.*;
public class ControlDemo08
{
    public static void main(String[] args)
    {
        System.out.println("-------------------欢迎使用闰年判断系统----------------------");
        System.out.print("请输入您需要判断的年份:    ");
        Scanner sc = new Scanner(System.in);
        try
        {
            int year = sc.nextInt();
            if (year % 4 == 0 && year % 100 != 0)
            {
                System.out.println(year + " 年是闰年!");
            }else if (year % 400 == 0)
            {
                System.out.println(year + " 年是闰年!");
            }else{
                System.out.println(year + " 年不是闰年!");
            }
        }
        catch (Exception e)
        {
            System.out.println(e);
        }
    }
}

6、由命令行输入一个4位整数,求将该数反转以后的数。如原数为1234,反转以后的数为4321。

import java.util.*;
public class ControlDemo09
{
    public static void main(String[] args)
    {
        System.out.print("请输入一个4位整数:   ");
        Scanner sc = new Scanner(System.in);
        try
        {
            int num = sc.nextInt();
            if (num >= 1000 && num <10000)
            {               
                int a = num / 1000;   //取得千位数
                int b = (num - a * 1000) / 100;   //取得百位数
                int c = (num - a * 1000 - b * 100) / 10;   //取得十位数
                int d = num - a * 1000 - b * 100 - c * 10;   //取得个位数
                System.out.println(num + " 反转以后的数为: " + (d * 1000 + c * 100 + b * 10 + a));
            }else{
                System.out.println("对不起,您输入的数字不是4位数!");
            }
        }
        catch (Exception e)
        {
            System.out.println(e);
        }

    }
}

7、编写程序,接受用户输入1~7之间的整数,若不符合条件则重新输入,利用switch语句输出星期几。提示:使用while循环实现重新输入。

import java.util.*;
public class ControlDemo11
{
    public static void main(String[] args)
    {
        boolean sign = false;
        while (sign == false)
        {
            try
            {
                System.out.print("请输入一个1~7的整数值:    ");
                Scanner sc = new Scanner(System.in);
                int week = sc.nextInt();
                switch (week)
                {
                case 1:
                    sign =true;
                    System.out.println("今天是星期一!"); break;
                case 2:
                    sign =true;
                    System.out.println("今天是星期二!"); break;
                case 3:
                    sign =true;
                    System.out.println("今天是星期三!"); break;
                case 4:
                    sign =true;
                    System.out.println("今天是星期四!"); break;
                case 5:
                    sign =true;
                    System.out.println("今天是星期五!"); break;
                case 6:
                    sign =true;
                    System.out.println("今天是星期六!"); break;
                case 7:
                    sign =true;
                    System.out.println("今天是星期日!"); break;
                default:
                    System.out.println("您输入的数据不正确!请重新输入!");
                }
            }
            catch (Exception e)
            {
                System.out.println(e);
            }
        }

    }
}

8、编写一段代码输出图形

/*
    编写一段代码输出如下图形:
    *
    **
    ***
    ****
    *****
*/
public class ControlDemo15
{
    public static void main(String[] args)
    {
        for (int i = 1; i <= 5; i++)
        {
            for (int j = 1; j <= i; j++)
            {
                System.out.print("*");
            }
            System.out.print("\n");
        }
    }
}

9、编写一个程序,找出大于200的最小的质数。(提示:质数又称素数,只能被1和本身整除。)

public class ControlDemo17
{
    public static void main(String[] args)
    {
        int result;
        boolean sign;
        for (int i = 200; ; i++)
        {
            sign = true;
            for (int j = 2; j < i; j++)
            {
                if (i % j == 0)
                {
                    sign = false; break;
                }
            }
            if (sign)
            {
                result = i; break;
            }else{
                continue;
            }
        }
        System.out.println("大于200的最小的质数为:  " + result);
    }
}

10、小游戏:幸运猜猜猜
游戏规则:游戏随机给出一个0~99(包括0,99)的数字,然后你猜是什么数字。
你可以随便猜一个数字,游戏会提示你太大还是太小,从而缩小结果范围。
经过计策猜测与提示后,最终推出答案。
在游戏过程中,记录你最终猜对时所需要的次数,游戏结束后公布结果。

import java.util.*;
public class ControlDemo35
{
    public static void main(String[] args)
    {
        System.out.println("--------------------欢迎您来到猜猜猜小游戏-------------------");
        Random r = new Random();
        Scanner sc = new Scanner(System.in);
        int result = r.nextInt(99);  //生成0~99的随机数
        int num;   //存储猜测结果
        int n = 0;   //记录猜测次数
        boolean sign = false;
        while (!sign)
        {
            System.out.print("请输入您猜测的结果:  ");
            try
            {
                num = sc.nextInt();
                n++;
                if (num == result)
                {
                    sign = true;
                }else if (num < result)
                {
                    System.out.println("您猜测的数字太小!请重新猜测");
                }else if (num > result)
                {
                    System.out.println("您猜测的数字太大!请重新猜测");
                }
            }
            catch (Exception e)
            {
                System.out.println(e);
                System.out.println("还能不能好好玩耍了,您猜的这也叫数字!为了惩罚您,游戏结束!请您受累,重新进入本系统吧!");
                return;
            }
        }
        System.out.println("您本次游戏所用次数为:   " + n + "  次!");
    }
}

游戏运行结果:
【Java学习笔记】控制语句习题集_第1张图片
11、输出九九乘法表

//使用for循环输出九九乘法表
public class ForTest
{
    public static void main(String[] args)
    {
        System.out.println("-----------------------------九九乘法表-----------------------------");
        for (int i = 1; i < 10; i++)
        {
            for (int j = 1; j <= i; j++)
            {
                System.out.print(j + "×" + i + "=" + i * j + "\t");   //输出制表符
            }
            System.out.print("\n");    //输出换行符
        }
    }
}

运行结果:
【Java学习笔记】控制语句习题集_第2张图片

你可能感兴趣的:(Java学习笔记)