编程初学者的“愚蠢”代码

news2024/10/5 13:04:33

 

每个编程学习者都曾经是初学者,刚起步的时候难免写下一些令人尴尬的、看似愚蠢的代码。这些代码可能充满了错误、逻辑混乱,但它们是学习过程中的一部分。在本文中,我将分享我自己作为初学者时写的一段Java代码,列出问题、分析原因,并提供解决方案。

 

问题代码示例 

public class AverageCalculator {
    public static void main(String[] args) {
        // 计算两个数的平均值
        String num1 = "5";
        String num2 = "7";

        int average = Integer.parseInt(num1 + num2) / 2;
        System.out.println("平均值是:" + average);
    }
}

这段代码的目标是计算两个数字的平均值。尽管看似没有什么问题,但实际上存在严重的错误。

问题分析

  1. 输入类型问题:我们将数字存储为字符串(String),而不是整数(int),这违反了Java的数据类型规范。这将导致无法进行数学计算。

  2. 字符串连接问题:我们试图将两个字符串(num1num2)连接在一起,而不是进行数学加法操作。这将导致字符串"57"而不是数字12。

  3. 整数除法问题:虽然我们试图将"57"除以2,但由于"57"是一个字符串,这将导致编译错误。

解决方案

1. 类型转换

首先,我们需要将字符串转换为整数,以便能够执行数学操作。这可以通过使用Integer.parseInt()方法来实现:

int num1 = Integer.parseInt("5");
int num2 = Integer.parseInt("7");

这将确保我们得到的num1num2是整数类型。

2. 正确计算平均值

为了计算平均值,我们应该将两个整数相加,然后除以2。这是正确的数学方式:

int average = (num1 + num2) / 2;

3. 打印结果

最后,我们需要正确打印结果。由于average是整数,我们可以直接打印它:

System.out.println("平均值是:" + average);

改进后的代码

下面是改进后的代码:

public class AverageCalculator {
    public static void main(String[] args) {
        // 计算两个数的平均值
        int num1 = Integer.parseInt("5");
        int num2 = Integer.parseInt("7");

        int average = (num1 + num2) / 2;
        System.out.println("平均值是:" + average);
    }
}

这段代码现在能够正确计算两个数字的平均值并打印结果,而不再存在原始代码中的错误。这个示例强调了作为初学者在编程过程中可能出现的问题,以及如何通过理解问题、分析原因并寻找正确的解决方案来不断改进编程技能。 

 

 

 

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

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

相关文章

springboot+vue基于Spark的共享单车数据存储系统的设计与实现【内含源码+文档+部署教程】

博主介绍:✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业毕业设计项目实战6年之久,选择我们就是选择放心、选择安心毕业✌ 🍅由于篇幅限制,想要获取完整文章或者源码,或者代做&am…

分布式链路追踪系统Skywalking的部署和应用

一,背景 随着业务的扩张, 系统变得越来越复杂, 由前端、app、api,微服务,数据库,缓存,消息队列,关系数据库, 列式数据库等构成了繁杂的分布式网络. 当出现一个调用失败的问题时,要定位异常在哪个服务,需要进入每一个服务里看日志, 这个过程的复杂度和工作量是不可想…

蓝屏代码0xc0000001的解决方法和注意事项

蓝屏代码0xc0000001是Windows系统常见的一个错误代码,它通常意味着系统启动时出现了严重的错误。当用户遇到这个问题时,可能会感到非常困惑和焦虑。本文将为大家介绍一些解决蓝屏代码0xc0000001的方法,并详细说明注意事项。让我们一起来看看&…

deepin操作系统下载

官网 最新版本 – 深度科技社区 下载页面 最新版本 – 深度科技社区 随便选择一个下载 直接下载地址 https://cdimage.deepin.com/releases/20.9/deepin-desktop-community-20.9-amd64.iso

IDEA同步代码到Gitee

参考博客 https://gitee.com/jakhyd/risk-operation.git

通达OA通用版V12的表单js定制开发,良好实践总结-持续更新

通达OA通用版V12的表单js定制开发的良好实践总结-持续更新 良好实践总结在表单中的js区域标准代码2023年10月19日获取地址栏:协议、域名/IP地址端口号获取地址栏的参数,比如run_id、flow_id等向表单中追加自定义css、js文件 良好实践总结 在webroot下的…

电脑出现关于kernelbase.dll文件找不到的情况,有什么办法可以解决?

在使用电脑中,突然提示找不到kernelbase.dll,这时候应该怎么办呢?出现这样的问题,有神办法可以解决。看到有小伙伴在问这个问题,那么今天就带大家了解一下这个文件,同时教大家如何解决kernelbase.dll丢失的…

回溯法介绍-回溯与递归的区别【详细且排版舒服】

一、回溯法 1. 定义 有一类问题,我们不知道它明确的计算法则。而是先进行试探,试探到最终状况,发现不满足问题的要求,则回溯到上一个状态继续试探。这种不断试探和回溯的思想,称为回溯法(Back Track Meth…

华为OD机试 - 机器人走迷宫 - 深度优先搜索dfs(Java 2023 B卷 200分)

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、深度优先搜索dfs六、Java算法源码七、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题&…

Sosyal Lig Arena VoxEdit 比赛

召集所有体素艺术家和足球爱好者!准备好彻底改变足球世界了吗? 我们邀请所有艺术家参加 VoxEdit 未来足球比赛。这场激动人心的比赛向你们发出挑战,请使用 VoxEdit 想象元宇宙中足球的未来。 发挥你们的创造力,展望未来的足球世…

半导体即国家,日本做了啥?最大的 AI 模型并不十分透明;特斯拉安全数据报告缺失近一年丨 RTE 开发者日报 Vol.70

开发者朋友们大家好: 这里是 「RTE 开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE (Real Time Engagement) 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…

香港服务器在国内访问太慢怎么能提高?

​  一直以来,全球化业务需求的增长是跟随着蓬勃向上的互联网而发展的。有了网络,海外贸易就在鼠标的轻点中完成。而IDC市场中的香港服务器也因为免备案政策的特性,开始逐渐成为企业想要跨越地域壁垒而考虑的对象。但在使用过程中&#xff…

视频号下载助手中的小程序怎么用?微信视频号提取下载教程

​用过视频号视频下载助手都说好用,但还有不少人不知道如何操作,怎么才能快速提取视频号视频呢?今天就分享两个工具【视频下载助手】和【视频下载bot】两个结合的方式进行下载,具体操作看教程。 在微信客户端中搜索提取机器人&…

开关电源芯片好坏的判断标准是什么?如何判断电源芯片的好坏?

电源芯片是电子设备的一个重要元件,如果电源芯片损坏,那么设备也将停止工作。开关电源芯片是一种电源管理器件,可以将输入电压转换为稳定的输出电压。为了开关电源芯片可以正常稳定运行以及电子设备可以正常工作,对于电源芯片的检…

Java面试题:链表-合并两个排序的链表

描述 输入两个递增的链表,单个链表的长度为n,合并这两个链表并使新链表中的节点仍然是递增排序的。 示例 输入: {1,3,5}, {2,4,6}返回值: {1,2,3,4,5,6}原题地址:https://www.nowcoder.com/practice/d8b6b4358f7742…

域控操作三:给域用户本地管理员权限

登录本地管理账号 右键此电脑–管理–本地用户和组–组—双击administrators 一般来说会有本地管理账号和域控的已缓存账号 点击添加–高级–输入域控管理员账号 搜索这个电脑使用人添加进去。重启电脑即可

【Java】ArrayList集合使用

ArrayList集合常见方法 方法名称说明public boolean add(E e)将元素插入到指定位置的arraylist中,返回值:返回boolean类型public E remove(int index)删除 arraylist里的单个元素,返回值:返回删除之前的元素public E set(int inde…

ESP32集成开发环境Espressif-IDE安装 – Windows

陈拓 2023/10/15-2023/10/16 1. 概述 Espressif IDE是一个基于Eclipse CDT的集成开发环境(IDE),用于使用ESP-IDF框架开发物联网应用程序。这是一个专门为ESP-IDF构建的独立定制IDE。Espressif IDE附带了IDF Eclipse插件、重要的Eclipse CDT插…

VMware下linux中ping报错unknown host的解决办法

一、错误截图 二、解决办法 2.1 按照步骤查看本机虚拟IP 依次点击:【编辑】》【虚拟网络编辑器】,选中NET模式所属的行,就能看到子网地址。 比喻,我的子网地址是:192.168.18.0 那么,接下来要配置的linux…

Pyside6 资源系统和资源文件使用

Pyside6 资源系统和资源文件使用 资源系统使用创建资源管理器编译qrc文件调用资源文件 在开发APP过程中,经常需要使用一些文件,图片之类的资源,这些资源都有一个特点,就是跟用户的使用环境无关,也就是说必须独立于系统…