• 【第01天】A + B | 基础输入输出,开启学习Java旅程


    本文已收录于专栏
    🌸《Java入门一百例》🌸

    序、专栏前言

       本专栏开启,目的在于帮助大家更好的掌握学习Java,特别是一些Java学习者难以在网上找到系统地算法学习资料帮助自身入门算法,同时对于专栏内的内容有任何疑问都可在文章末尾添加我的微信给你进行一对一的讲解。
       但最最主要的还是需要独立思考,对于本专栏的所有内容,能够进行完全掌握,自己完完全全将代码写过一遍,对于算法入门肯定是没有问题的。
       算法的学习肯定不能缺少总结,这里我推荐大家可以到高校算法社区将学过的知识进行打卡,以此来进行巩固以及复习。
      学好算法的唯一途径那一定是题海战略,大量练习的堆积才能练就一身本领。专栏的任何题目我将会从【题目描述】【解题思路】【模板代码】【代码解析】等四板块进行讲解。

    序、本章前言

       Java语言的输入输出,涉及到IO流相关的知识,这对于初学者来说并不友好。所以对于学习来说,大家更应该注重与使用,暂时并不需要深入了解其底层原理。我们以最基础的 a + b a+b a+b 问题来帮助大家入门

    一、【例题1】

    1、题目描述

      【题1】给定两个正整数 a a a b b b,请你输出 a + b a+b a+b的结果。题目保证 a , b ≤ 100000 a,b\leq 100000 a,b100000

    2、解题思路

    题目难度:⭐️

      运用了Java最基础的输入输出

    3、模板代码

    import java.util.Scanner;
    public class Main{
        public static void main(String[] args) {
            Scanner sc=new Scanner(System.in);
            int a=sc.nextInt();
            int b=sc.nextInt();
            System.out.println(a+b);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    4、代码解析

    • ( 1 ) (1) (1)代码第一行的是导包语句,import关键字是Java的导包关键字
    • ( 2 ) (2) (2)题目第二行是我们的Main类,Java万物皆以类生存,在OJ平台下使用Java写算法题,主函数必须写在名为Main的一个类下才能通过编译。
    • ( 3 ) (3) (3)第三行就是Java的主函数了
    • ( 4 ) (4) (4)Systm.in是标准输入流,需要结合Scanner使用,Scanner提供了多种读取函数,这里 a 、 b a、b ab都是int类型,所以我们使用nextInt函数。
    • ( 5 ) (5) (5)System.out是标准输出流,可以直接使用,可以使用println进行标准输出,也可以使用printf进行格式化输出
      在这里插入图片描述

    二、【例题2】

    1、题目描述

      【题2】给定一个整数 t ( 1 ≤ t ≤ 1000 ) t (1\leq t\leq 1000) t(1t1000),然后给定 t t t 组数据,每次给定两个正整数 a a a b b b,请你输出 a + b a+b a+b的结果。题目保证 a , b ≤ 100000 a,b\leq 100000 a,b100000

    2、解题思路

    题目难度:⭐️

      还是考察了Java的基本输入与输出,同时由于是 t t t组测试数据,我们还需要使用到循环的知识,通常像这种多组测试数据,我们一般使用while循环。

    3、模板代码

    import java.util.Scanner;
    public class Main{
        public static void main(String[] args) {
            Scanner sc=new Scanner(System.in);
            int t=sc.nextInt();
            while (t-->0){
                int a=sc.nextInt();
                int b=sc.nextInt();
                System.out.println(a+b);
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    4、代码解析

    • ( 1 ) (1) (1)本题与第一题唯一的区别在于加多了一个while循环,其余内容一致。
    • ( 2 ) (2) (2)while(expr){body}是一个循环语句结构。expr的含义是一个布尔表达式,如果为true,则会执行一遍代码体body内的代码,当为false时结束循环。本题我们的 t t t每次自减1后执行一次循环,当其为0时结束循环,循环刚好进行了t次。
      在这里插入图片描述

    三、【例题3】

    1、题目描述

      【题1】题目包含多组测试数据,每个数据给定两个正整数 a a a b b b,请你输出 a + b a+b a+b的结果。题目保证 a , b ≤ 100000 a,b\leq 100000 a,b100000

    2、解题思路

    题目难度:⭐️⭐️

    • 新手看到这道题肯定很懵逼!!多组测试数据?到底几组?
    • 不用担心,这只是涉及到了我们Scanner的另外一个函数hasNext()

    3、模板代码

    import java.util.Scanner;
    public class Main{
        public static void main(String[] args) {
            Scanner sc=new Scanner(System.in);
            while (sc.hasNext()){
                int a=sc.nextInt();
                int b=sc.nextInt();
                System.out.println(a+b);
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    4、代码解析

    • ( 1 ) (1) (1)hasNext,顾名思义,它会检测你的输入中是否还有下一个输入,如果有我们则会进入循环体,否则会结束循环。
    • ( 2 ) (2) (2)在做题时,输入的数据是由评测器提供的,当没有数据时,我们会自动结束循环,以此结束程序,其他无需我们担心。
    • ( 3 ) (3) (3)如果是在自己的编译器中使用hasNext,会一直处于输入状态,这时我们只需要主动按一下ctrl+d即可结束。
      在这里插入图片描述

    四、【例题3】

    1、题目描述

      题目将会循环输入,每个数据给定两个正整数 a a a b b b,如果 a a a b b b的值都为0,则退出循环,否则请你输出 a + b a+b a+b的结果。题目保证 a , b ≤ 100000 a,b\leq 100000 a,b100000

    2、解题思路

    题目难度:⭐️

    • 题目要求一直输入,当a和b同时为0再结束,我们同样可以使用while循环。

    3、模板代码

    import java.util.Scanner;
    public class Main{
        public static void main(String[] args) {
            Scanner sc=new Scanner(System.in);
            while (true){
                int a=sc.nextInt();
                int b=sc.nextInt();
                if (a==0&&b==0) break;;
                System.out.println(a+b);
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    4、代码解析

    • ( 1 ) (1) (1)由于我们不确定循环会持续多久,所以我们可以写成while(true),表示一直进行循环
    • ( 2 ) (2) (2)当然循环并不是无休止的,题目告诉了我们当 a a a b b b同时为0时会结束,所以每次接收到a和b以后我们进行a==0&&b==0判断,如果为truebreak跳出循环。
    • ( 3 ) (3) (3)&&是逻辑运算符,当左右两边的表达式同时为true它才会返回truebreakJava的关键字,作用为跳出当前这层循环。
      在这里插入图片描述

    五、【例题5】

    1、题目描述

      要求实现一个函数add,传入两个int类型的参数 a a a b b b,返回 a + b a+b a+b的结果。

    2、解题思路

    • 主要考察的是Java中对于函数使用。这种格式是LeetCode网站特有的OJ格式,不需要我们进行输入输出的操作。
    • 如果对于函数不太理解,可以类比数学中的函数,自变量对于我们的参数,因变量则是我们的返回值。 要注意参数可能会有多个,而返回值只会有一个。

    3、模板代码

    public int add(int a, int b) {
        return a + b;
    }
    
    • 1
    • 2
    • 3

    4、代码解析

    • ( 1 ) (1) (1)publicJava中的权限关键词,加不加都可以。
    • ( 2 ) (2) (2)括号内的是我们的参数,需要声明参数类型与参数名称
    • ( 3 ) (3) (3)int表示返回值类型,return是我们需要返回的结果
    • ( 4 ) (4) (4)LeetCode会将需要用到的参数全部传给你,你需要在函数内进行操作,最后返回一个正确的答案给它

    六、【例题6】

    序号题目链接难度评级
    1加法1
    2乘法1
    👇 学习有疑问?👇
  • 相关阅读:
    思维模型 巴纳姆效应
    【c++百日刷题计划】 ———— DAY10,奋战百天,带你熟练掌握基本算法
    MySQL 数据库常用命令大全(完整版)
    debian12 允许远程ssh登录
    数据结构和算法训练:第二十五弹
    [AHK]获取同花顺软件中的持仓信息
    d盘不见了怎么恢复?数据恢复,一键操作
    常见DOM操作
    垃圾分类箱通过工业4G路由器实现无人值守远程管理
    基于java+springboot+mybatis+vue+elementui的眼镜商城系统
  • 原文地址:https://blog.csdn.net/m0_57487901/article/details/124909788