【问题标题】:What data type should i use? [closed]我应该使用什么数据类型? [关闭]
【发布时间】:2015-03-11 15:59:09
【问题描述】:

嗨,我有一个 Java 编程任务,其中包括 3 个练习,我已经完成了 2 个练习,但在第三个练习中,我不知道我应该使用哪种数据类型 这是问题:

编写一个 java 程序,从用户那里读取课程代码、部分和学生在代表两个期中和期末的三门考试中的分数。三项考试的百分比分别为固定值 30%、30% 和 40%。您的程序计算最终平均成绩并将其与课程代码和部分一起显示。 备注:除平均值外的所有数据都必须是整数,并且您应该使用适合此特定练习的最有效的数据类型。

示例运行:

输入您的课程代码:CSCI250

输入您的部分:E

输入考试成绩和期末成绩:97 83 77

CSCI250 E 84.8(结果)


所以我想知道用于课程代码的首选数据类型是什么? char 是我应该用于部分的那个吗?

【问题讨论】:

    标签: java types char


    【解决方案1】:

    如果您要捕获用户输入,请对所有内容使用字符串。

    原因?您可以请求一个数字,但用户可以输入任何内容。您的代码需要处理错误的输入。

    【讨论】:

    • 这是为了读取输入(例如,在解析成合适的类型之前),而不是存储/处理转换后的输入。跨度>
    • @user286 任何不需要转换为另一种类型(如数字)的东西都应该保持原样。使用字符串来分解单个字符很好,因为不需要额外的代码。无论如何断言它的长度是1。
    • "everything" 涵盖了诸如数字之类的“一切”——令人困惑的是,这里提到的这些不是指成绩! - 而“课程名称和部分”仅涵盖..那些。但我同意 - 如我的回答中所述,我还将在课程和部分中使用字符串。老师可能想要一个“提高效率”的字符(重要的是能够解释为什么使用字符可能[不是]更合适的选择),但是..我离题了..和我已经给了饼干。
    【解决方案2】:

    我认为您可以使用String 作为课程代码的数据类型。您可以使用它来写数字和字母。对于部分,是的,char 将适合它。

    【讨论】:

    • 非常感谢 :D ;正是我想听到的
    • char 将适用,直到需要处理 ENG101 EF('F' 去哪里?)..注意域和业务规则。
    • @user2864740 你是对的,但我认为他们只会在作业中使用 1 个字符。
    • 感谢您的建议 @user2864740 但在我的项目部分中只需要 1 个字符,所以我认为 char 就足够了。如果它是 2,就像你说的(EF)我应该使用字符串代替吗?
    • @AliZgheib 是的,因为那是“只是文本”(仍然可以有约束)。
    【解决方案3】:

    对任意文本使用String

    如果部分代码始终存在1并且从不超过字符,则可以使用char

    但是,为了一致性、灵活性和易用性,我仍然会使用字符串。老师可能会根据他们所追求的“效率”cy而更喜欢这个。


    1这是一个软“总是”:虽然char 不能表示空值,但可以使用标记(例如'\0'' ')来表示“未指定部分”。使用这样的哨兵来补充 null 也可以(但并不总是)导致更多的逻辑工作 - 特别是在显示记录时。

    在任何情况下,最好不要只为 null 切换到 Character,因为这很可能超出了当前课程工作的范围。

    【讨论】:

    • 别管哨兵;如果你必须使用 char(我不会)使用包装字符,它 can 为空。
    • @Bohemian 一个有效的观点 - 答案是根据上下文量身定制的,我假设(正确或错误地)只涵盖了“基础知识”。
    • 包装器当然是基础:从 1.5 开始,它们是 JLS 的一部分
    • @Bohemian Basic 在课程上下文中,基于提出的问题。我提供了 char 可能不合适的原因 - 我敢说太多解决问题的方法或澄清我的措辞!
    • “哨兵”的概念比包装器要先进得多。恕我直言,很大一部分专业程序员不熟悉这个概念。
    猜你喜欢
    • 1970-01-01
    • 2021-08-22
    • 2023-03-03
    • 1970-01-01
    • 2015-01-26
    • 2012-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多