用 Kotlin 编写四则运算计算器:从零开始的简单教程

news2024/9/21 0:25:22

人不走空

                                                                      

      🌈个人主页:人不走空      

💖系列专栏:算法专题

⏰诗词歌赋:斯是陋室,惟吾德馨

目录

      🌈个人主页:人不走空      

💖系列专栏:算法专题

⏰诗词歌赋:斯是陋室,惟吾德馨

为什么选择 Kotlin?

需求分析 📝

实现步骤 🚀

1. 设置输入循环

2. 输入第一个数字

3. 输入运算符

4. 输入第二个数字

5. 执行计算并显示结果

完整代码 🌟

小结 ✨

作者其他作品:



 

在现代编程中,掌握一门编程语言的基础知识至关重要。今天我们将通过一个简单的项目——编写一个四则运算计算器,来学习和实践 Kotlin 语言的基础。这个项目不仅适合初学者,还可以帮助你巩固对 Kotlin 基本语法的理解。准备好了吗?让我们开始吧!

为什么选择 Kotlin?

Kotlin 是一种现代、简洁且强大的编程语言,兼容 Java,并在 Android 开发中广泛使用。其简洁的语法和丰富的功能使得它成为开发各种应用程序的理想选择。从简单的计算器程序入手,可以帮助你快速上手 Kotlin。

需求分析 📝

我们要实现的计算器需要具备以下功能:

  1. 提示用户输入第一个数字。
  2. 提示用户输入运算符(+、-、*、/)。
  3. 提示用户输入第二个数字。
  4. 根据用户输入的运算符,进行相应的四则运算。
  5. 显示计算结果。
实现步骤 🚀

让我们一步一步来实现这个计算器。

1. 设置输入循环

首先,我们需要一个循环来不断接受用户的输入,这样用户可以进行多次计算。

fun main() {
    while (true) {
        // 后续代码将在这里编写
    }
}

2. 输入第一个数字

提示用户输入第一个数字,并将其转换为 Double 类型。如果输入无效,提示重新输入。

print("请输入第一个数字: ")
val num1 = readLine()?.toDoubleOrNull()
if (num1 == null) {
    println("输入无效,请输入一个数字。")
    continue
}

3. 输入运算符

提示用户输入运算符,并验证输入是否合法。

print("请输入运算符 (+, -, *, /): ")
val operator = readLine()
if (operator != "+" && operator != "-" && operator != "*" && operator != "/") {
    println("输入无效,请输入一个有效的运算符。")
    continue
}

4. 输入第二个数字

提示用户输入第二个数字,并将其转换为 Double 类型。如果输入无效,提示重新输入。

print("请输入第二个数字: ")
val num2 = readLine()?.toDoubleOrNull()
if (num2 == null) {
    println("输入无效,请输入一个数字。")
    continue
}
5. 执行计算并显示结果

根据用户输入的运算符,使用 when 表达式进行相应的运算,并显示结果。如果遇到除数为 0 的情况,提示错误信息。

val result = when (operator) {
    "+" -> num1 + num2
    "-" -> num1 - num2
    "*" -> num1 * num2
    "/" -> if (num2 != 0.0) num1 / num2 else {
        println("错误: 除数不能为0")
        continue
    }
    else -> null
}

if (result != null) {
    println("结果: $num1 $operator $num2 = $result")
} else {
    println("无效的运算。")
}
完整代码 🌟

将上述各部分代码组合在一起,我们就得到了一个完整的四则运算计算器程序:

fun main() {
    while (true) {
        print("请输入第一个数字: ")
        val num1 = readLine()?.toDoubleOrNull()
        if (num1 == null) {
            println("输入无效,请输入一个数字。")
            continue
        }

        print("请输入运算符 (+, -, *, /): ")
        val operator = readLine()
        if (operator != "+" && operator != "-" && operator != "*" && operator != "/") {
            println("输入无效,请输入一个有效的运算符。")
            continue
        }

        print("请输入第二个数字: ")
        val num2 = readLine()?.toDoubleOrNull()
        if (num2 == null) {
            println("输入无效,请输入一个数字。")
            continue
        }

        val result = when (operator) {
            "+" -> num1 + num2
            "-" -> num1 - num2
            "*" -> num1 * num2
            "/" -> if (num2 != 0.0) num1 / num2 else {
                println("错误: 除数不能为0")
                continue
            }
            else -> null
        }

        if (result != null) {
            println("结果: $num1 $operator $num2 = $result")
        } else {
            println("无效的运算。")
        }
    }
}
小结 ✨

通过这个项目,我们学习了如何在 Kotlin 中处理用户输入、进行基本的算术运算、使用 when 表达式进行条件判断,以及如何使用循环来实现连续的用户交互。这些都是 Kotlin 编程的基本技巧,掌握这些技巧将为你进一步学习和开发打下坚实的基础。

你还在等什么?快打开你的 Kotlin 编译器,试试这个简单而有趣的项目吧!如果你在过程中遇到任何问题,欢迎在评论区留言,我们一起探讨解决。Happy coding! 🎉


作者其他作品:

【Java】Spring循环依赖:原因与解决方法

OpenAI Sora来了,视频生成领域的GPT-4时代来了

[Java·算法·简单] LeetCode 14. 最长公共前缀 详细解读

【Java】深入理解Java中的static关键字

[Java·算法·简单] LeetCode 28. 找出字a符串中第一个匹配项的下标 详细解读

了解 Java 中的 AtomicInteger 类

算法题 — 整数转二进制,查找其中1的数量

深入理解MySQL事务特性:保证数据完整性与一致性

Java企业应用软件系统架构演变史 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1923432.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电-气阀门定位器YT-1000系列产品说明

电-气阀门定位器YT-1000系列 使用注意事项 • 搬运安装或使用中对产品过大的震动或撞击会成为产品故障的原因。 • 超过规定参数范围使用也会成为产品故陷的原因。 • 不使用的气路接口要用堵塞堵住。 • 不使用产品而长时间放悝在室外时,要盖上产品外壳以免雨水进入产品…

八款主流电脑监控软件推荐|2024年最佳电脑监控软件排行榜

在现代社会中,电脑监控软件已经成为企业和家庭不可或缺的工具。无论是为了确保员工的工作效率,还是保护孩子在互联网上的安全,这些软件都能提供有力的支持。本文将为大家介绍2024年最受欢迎的八款电脑监控软件。 1. 固信软件 固信软件是一款综…

服务重启时容器未自动启动

1、容器重启策略 通过设置容器的重启策略,‌可以决定在容器退出时Docker守护进程是否重启该容器。‌常见的重启策略包括:‌ no:‌不重启容器,‌默认策略。‌always:‌无论容器是如何退出的,‌总是重启容器…

2024年公共文化与社会服务国际会议(ICPCSS 2024)

2024年公共文化与社会服务国际会议 2024 International Conference on Public Culture and Social Services 【1】会议简介 2024年公共文化与社会服务国际会议是一个集学术性、实践性和国际性于一体的盛会。我们期待与您共同探讨公共文化与社会服务的未来发展方向,为…

【公益案例展】华为云X《无尽攀登》——攀登不停,向上而行

‍ 华为云公益案例 本项目案例由华为云投递并参与数据猿与上海大数据联盟联合推出的 #榜样的力量# 《2024中国数据智能产业最具社会责任感企业》榜单/奖项”评选。 大数据产业创新服务媒体 ——聚焦数据 改变商业 夏伯渝,中国无腿登珠峰第一人,一生43年…

基于GIS矿产勘查靶区优选技术

定义: 找矿远景区(ore-finding prospect): 一般将中小比例尺(小于等于1:10万)成矿预测所圈定的找矿有利地段(preferable ore-finding area)成为找矿远景区 找矿靶区(ore-finding t…

IPD流程学习笔记

一、前言 互联网行业讲究的是快速试错,所以IPD流程的应用并不多,但是传统企业数字化转型中,怎么确保项目投入可以切合市场需求,有较好的ROI及落地性,轻量级的IPD还是很有必要了解下的,特别是重资产类的业务…

LAMP万字详解(概念、构建步骤)

目录 LAMP Apache 起源 主要特点 软件版本 编译安装httpd服务器 编译安装的优点 操作步骤 准备工作 编译 安装 优化执行路径 添加服务 守护进程 配置httpd 查看 Web 站点的访问情况 虚拟主机 类型 部署基于域名的虚拟主机 为虚拟主机提供域名解析&#xff…

原料药合成偶联反应中钯残留去除

摘要:海普开发的HP214 是一种具有螯合硫脲基团的大孔树脂,专为选择性去除汞、铂族贵金属、金和银而设计。同时还特别适用于从有机工艺流程中回收钯催化剂。 #原料药合成偶联反应中钯残留去除 在有机合成中,以过渡金属络合物催化进行高选择性…

博士论文 | 神经网络的结构与表示 147页

由于神经网络在人工智能领域占据主导地位,一个试图了解其内部工作原理的研究分支领域应运而生。这个子领域的一个标准方法是将神经网络主要理解为代表人类可理解的特征。另一种探索较少的可能性是将它们理解为多步骤的计算机程序。这样做的一个先决条件似乎是某种形…

中霖教育:税务师和中级会计师哪个难?

税务师和中级会计师是财会专业的两个比较常见的证书,二者之间哪个更难? 税务师考试包含五个不同的科目:包括《税法一》、《税法二》、《涉税服务实务》、《涉税服务相关法律》以及《财务与会计》,考生在连续五个年度内通过即可。 中级会计…

【人工智能】-- 迁移学习

个人主页:欢迎来到 Papicatch的博客 课设专栏 :学生成绩管理系统 专业知识专栏: 专业知识 文章目录 🍉引言 🍉迁移学习 🍈基本概念 🍍定义 🍌归纳迁移学习(Induct…

[IDEA插件] JarEditor 编辑jar包(直接新增、修改、删除jar包内的class文件)

文章目录 1. 安装插件 JarEditor2. 在IDEA中添加外部JAR包3. JarEditor 使用介绍 之前我们需要修改jar内文件的时候需要解压jar包,反编译class,新建java源文件,修改代码,再编译成class,替换jar包内的class文件。 现在…

亚马逊IP关联是什么?要怎么解决呢?

亚马逊不仅提供了广泛的商品和服务,也是许多企业和个人选择的电子商务平台。然而,与亚马逊相关的IP关联问题,特别是在网络安全和运营管理方面,经常成为使用亚马逊服务的用户和商家关注的焦点。通过了解亚马逊IP关联的含义、可能的…

ensp防火墙综合实验作业+实验报告

实验目的要求及拓扑图: 我的拓扑: 更改防火墙和交换机: [USG6000V1-GigabitEthernet0/0/0]ip address 192.168.110.5 24 [USG6000V1-GigabitEthernet0/0/0]service-manage all permit [Huawei]vlan batch 10 20 [Huawei]int g0/0/2 [Huawei-…

【网络安全】APDCL:IDOR + 账户接管

未经许可,不得转载。 文章目录 正文漏洞1:IDOR漏洞2:账户接管 正文 APDCL ,即印度阿萨姆邦电力分销公司(Assam Power Distribution Company Limited),是印度阿萨姆邦政府控制的公共部门企业&am…

题四次

大家好,我是小王同学,这是我参加2024年4月破局行动营“AI提示词”实战手册 学习笔记。个人理解。 相信在接下来的日子里,大家都能学有所成 课程安排 【DAY1】起航:生成14天学习打卡计划 根据您提供的课程大纲,我为您制…

C++基础入门(上)

个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 C基础入门(上) 收录于专栏【C语法基础】 本专栏旨在分享学习C的一点学习笔记,欢迎大家在评论区交流讨论💌 目录 1. C发展历史 2. C版本…

oslo_i18n学习小结

背景 代码均为开源代码 基于yoga版本,需要对openstack某服务做翻译,了解到oslo_i18n有翻译功能,配置oslo_i18n来给组件进行翻译 用法 用法 每个服务自己会带一个i18n.py的文件,如果要对日志进行翻译,从i18n导入_&…

京东商品信息爬虫程序:策略与实践

京东探索 京东案例 目标:爬取京东前三页商品数据,利用协程 思路: 爬取动态网站,首先分析接口链接,对比什么参数该变,什么参数可以不变。 原则:尽量与原链接相同,即使不加某个参数…