Java入门篇 之 逻辑控制(练习题篇)

这篇具有很好参考价值的文章主要介绍了Java入门篇 之 逻辑控制(练习题篇)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

博主碎碎念: 练习题是需要大家自己打的请在自己尝试后再看答案哦;

个人认为,只要自己努力在将来的某一天一定会看到回报,在看这篇博客的你,不就是在努力吗,所以啊,不要放弃,路上必定坎坷,但是成功后放眼望去,这将是青春很浓重的一笔

今日份励志文案:若结局非你所愿,请在尘埃落定前奋力一搏

加油!!!!!

Java入门篇 之 逻辑控制(练习题篇),java,开发语言

目录

一.第一题

1.1 解题思路

二.第二题

2.1 解题思路

三.第三题

3.1 解题思路

四.第四题

4.1 解题思路

五.第五题

5.1 解题思路

六. 第六题

6.1 解题思路


注意:博主的答案并不是唯一的,每道题都有很多种写法,感兴趣的可以自己尝试一下 

如果看不懂博主的代码,博主个人认为,你对逻辑控制学的不是太扎实,建议看一下博主上一篇对于逻辑控制的讲解

一.第一题

题目:计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值 

1.1 解题思路

1. 从上述表达式可以分析出

  a. 该表达式主要由100项,基数项为正,偶数项为负

2. 设置一个循环从1~100,给出表达式中的每一项:1.0/i, 注意此处不能使用1,否则结果全部为0

  然后使用flag标记控制奇偶项,奇数项为正,偶数项为负

  然后将所有的项相加即可

答案

public static void main(String[] args) {

    double sum = 0;
    int flg = 1;
    for (int i = 1; i <= 100; i++) {
        sum += 1.0/i * flg;
        flg = -flg;
    }
    System.out.println(sum);
}

二.第二题

题目:输出一个整数的每一位,如:123的每一位是3,2,1

2.1 解题思路

本题主要考虑,如何获取一个数字的每一位:

“ / ”   除法是保留整数

“ % ” 取余是保留余数

例如:

123 % 10 = 3

123/10=12   12%10=2

12/10=1       1%10= 1

代码如下:

答案

public static void main1(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入一个整数:");
        int n = scanner.nextInt();
        while (n != 0) {
            System.out.print(n % 10+" ");
            n /= 10;
        }
    }

三.第三题

题目:编写代码模拟三次密码输入的场景。 最多能输入三次密码,密码正确,提示“登录成功”,密码错误, 可以重新输 入,最多输入三次。三次均错,则提示退出程序

3.1 解题思路

这道题判断相等用到的是 equals () 判断相等,但是这个方法不适用于基本类型,基本类型的判断用的还是" == " 和" != "

答案

public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int count = 3;
        System.out.print("请创建你的密码num=");
        String num=scanner.nextLine();
        while (count != 0) {
            System.out.println("请输入你的密码:");
            String password = scanner.nextLine();

            //if(password == "123")   这个判断相等是错误的

            if(password.equals(num)) {
                System.out.println("登录成功!");
                break;
            }else {
                count--;
                System.out.println("你还有"+count+" 次机会!");
            }
        }
    }

四.第四题

题目:求斐波那契数列的第n项。(迭代实现)

4.1 解题思路

斐波那契数列定义为:1 1 2 3 5 8 13 21 我们可以看到,从第3项开始,都等于前一项+前一项的前一项的和。

3=1+2

5+2+3

13 = 5+8

我们可以先定义f1保存第一项的值,f2保存第2项的值,f3保存第3项的值。

每次算法一个f3,就同步更新f1和f2的值

答案

 public static int fib(int n) {
        if(n == 1 || n == 2 ) {
            return 1;
        }
        int f1 = 1;
        int f2 = 1;
        int f3 = 1;
        for (int i = 3; i <= n; i++) {
            f3 = f1+f2;
            f1 = f2;
            f2 = f3;
        }
        return f3;
    }
    public static void main(String[] args){
        Scanner scanner =new Scanner(System.in);
        System.out.print("请输入斐波那契数列的第n项:");
        int n= scanner.nextInt();
        int N=fib(n);
        System.out.print("斐波那契的第n项是"+N);
    }
}

五.第五题

题目:在同一个类中,分别定义求两个整数的方法 和 三个小数之和的方法。 并执行代码,求出结果

5.1 解题思路

  1. 方法名相同
  2. 参数列表不同(数据类型,个数,顺序)
  3. 返回值无关

答案

public static int sum(int a,int b) {
        return a+b;
    }

    public static double sum(double a,double b,double c) {
        return a+b+c;
    }
    public static void main(String[] args){
        Scanner scanner =new Scanner(System.in);
        System.out.print("请输入两个整数");
        int a=scanner.nextInt();
        int b=scanner.nextInt();
        int c=sum(a,b);
        System.out.print("请输入三个小数");
        double d=scanner.nextDouble();
        double e=scanner.nextDouble();
        double f=scanner.nextDouble();
        double g=sum(d,e,f);
        System.out.println(c);
        System.out.println(g);
    }

六. 第六题

题目:在同一个类中定义多个方法:要求不仅可以求2个整数的最大值,还可以求3个小数的最大值?

6.1 解题思路

本题可以借助Java原生类Math当中的max方法求最大值,也可以自己通过If else进行比较。

Math的使用 不需要导入相关的包

答案

public static int max(int a,int b) {
        return Math.max(a,b);
    }

    public static double max(double a,double b,double c) {

        double m = Math.max(a,b);
        return Math.max(m,c);
    }
    public static void main(String[] args){
        Scanner scanner =new Scanner(System.in);
        System.out.print("请输入两个整数");
        int a=scanner.nextInt();
        int b=scanner.nextInt();
        int c=max(a,b);
        System.out.print("请输入三个小数");
        double d=scanner.nextDouble();
        double e=scanner.nextDouble();
        double f=scanner.nextDouble();
        double g=max(d,e,f);
        System.out.println(c);
        System.out.println(g);
}

Java入门篇 之 逻辑控制(练习题篇),java,开发语言

如果有解释的不对或者不清晰,如果可以从评论区指出,我一定会加以修改,万分感谢

最后麻烦大佬们动一下发财的小手一键三连,万分感谢

 文章来源地址https://www.toymoban.com/news/detail-740879.html

到了这里,关于Java入门篇 之 逻辑控制(练习题篇)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • java -- 练习题

    1.定义一个Person类,要求有姓名和年龄,并且符合JavaBean标准,定义Student类继承Person,定义测试类,创建Student对象,要求创建Student对象的同时,指定Student对象的姓名为\\\"张三\\\",只能指定姓名不许指定年龄 2.按照以下要求定义类 3.键盘录入一个字符串,判断这个字符串是否是对称的字符串

    2023年04月09日
    浏览(29)
  • Java练习题2022-1

    HashSet是Java中常用的Set集合,向HashSet集合中添加数据对象时,首先会调用对象的hashCode()方法获取哈希码,根据哈希码计算对象的存储位置,如果相应位置上已经有数据对象,则会调用对象的equals()方法判断新加入的对象与现有对象是否重复,如果重复则拒绝加入。为了使用

    2024年02月08日
    浏览(37)
  • JAVA练习题——判断题

    1:java语言中不用区分字母的大写小写 T         F 2:Java的字符类型采用的是ASCII编码。 T         F 3:Java的字符类型采用的是Unicode编码,每个Unicode码占16个比特。 T          F 4:Java的各种数据类型占用固定长度,与具体的软硬件平台环境无关。 T         F

    2024年02月09日
    浏览(36)
  • Java选择结构作业练习题

    1.从键盘输入3个数,求最大值 请输入3个数: 5 2 11   你好,最大数是11 我想买车,买什么车决定于我在银行有多少存款: 如果我的存款超过500万,我就买卡迪拉克 否则,如果我的存款超过100万,我就买帕萨特 否则, 如果我的存款超过50万,我就买依兰特 否则, 如果我的存

    2024年02月02日
    浏览(32)
  • 【Java练习题汇总】《第一行代码JAVA》多线程篇,汇总Java练习题——线程及多线程概念、Thread 类及 Runnable 接口、线程状态、synchronized同步操作...

    一、填空题 Java 多线程可以依靠________ 、________ 和________ 三种方式实现。 多个线程操作同一资源的时候需要注意________,依靠________ 实现,实现手段是:________ 和________,过多的使用,则会出现________ 问题。 Java 程序运行时,至少启动________ 个线程,分别是________ 和_

    2024年02月16日
    浏览(41)
  • 【Java练习题汇总】《第一行代码JAVA》网络编程篇&集合体系篇&JDBC篇,汇总Java练习题——Socket 与ServerSocket、List和Set、Map~

    一、填空题 在类集中存放单值的最大父接口是___________ ,存放一对值的最大父接口是___________ 。 ___________ 接口保存的数据是不允许重复的,并且___________ 子类是可以排序的,根据___________ 排序。 Java 类集可以使用的输出方式是___________ 、___________ 、___________ 和___________ 。 在

    2024年02月13日
    浏览(35)
  • 2021级Java程序设计课程练习题

    1-1 抽象类是不能实例化的。  T   1-2 JAVA抽象类中一定含有抽象方法。  F   答题时没有看到一定qaq,抽象类不一定包含抽象方法,但包含抽象方法的类一定是抽象类。 2-2 有如下程序代码, 程序运行的结果是( )。 D.false true 第一个竟然是false!!! 使用“==”比较两个字符

    2023年04月23日
    浏览(33)
  • 【Java练习题汇总】《第一行代码JAVA》异常处理篇,汇总Java练习题——异常的概念及处理标准格式(try、catch、finally、throws、throw)、断言机制 Assertion ~

    一、填空题 Throwable 下的两个子类是______________ 、______________ 。 ArthmeticException 类表示______________ 异常, ArraysIndexOutOfBoundsException 表示______________ 异常。 一个 try 代码后面必须跟着若干个_______ 代码段或者一个_______ 代码段。 如果一个方法使用了_______ , 则编译器会强制在使用此

    2024年02月16日
    浏览(29)
  • 【Java练习题汇总】《第一行代码JAVA》Java常用类库篇,汇总Java练习题——Optional类、包装类、可变字符串支持类、Runtime类、System类、数学运算类、日期时间处理...

    一、填空题 在 java.lang 包中提供了两个字符串类,分别是________ 和________ 。这两个类都是________ 接口的子类,字符串类提供的求字符串长度的方法是________________ 。 Java 提供的两个大数操作类是________ 和________ 。 对象克隆方法是________ 类提供的,方法名称是________________ ,对

    2024年02月16日
    浏览(40)
  • Java练习题-用冒泡排序法实现数组排序

    ✅作者简介:CSDN内容合伙人、阿里云专家博主、51CTO专家博主、新星计划第三季python赛道Top1🏆 📃个人主页:hacker707的csdn博客 🔥系列专栏:Java练习题 💬个人格言:不断的翻越一座又一座的高山,那样的人生才是我想要的。这一马平川,一眼见底的活,我不想要,我的人生

    2024年02月08日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包