讲师中心 微信公众号
AI工具推荐 视频效率加速

如何在简易计算器中实现持续输入直到用户选择退出

阿辰同学_8711

阿辰同学_8711

发布时间:2026-01-31 13:50:13

|

931人浏览过

|

来源于php中文网

原创

如何在简易计算器中实现持续输入直到用户选择退出

本文介绍如何通过循环结构让简易计算器持续接收用户操作指令,直至主动选择退出,避免程序一次性执行后终止,并修正原代码中的逻辑错误与语法问题。

在构建一个交互式简易计算器时,核心需求之一是支持多次连续运算,而非执行一次后就结束程序。原始代码中将 while 循环置于条件判断之后、且循环条件 i > select 逻辑错误(初始 i=0,导致循环体根本不会执行),同时缺少重复提示菜单与重新输入的机制,因此程序运行后仅能计算一次便退出。

正确的做法是使用无限循环(while True)包裹整个交互流程,并在用户选择“退出”(选项 5)时主动终止程序。以下是优化后的完整实现:

使用Go语言搭建家庭相册系统-相关课件
使用Go语言搭建家庭相册系统-相关课件

使用Go语言搭建家庭相册系统-相关课件

下载
def add(x, y):
    return x + y

def sub(x, y):
    return x - y

def mul(x, y):
    return x * y

def div(x, y):
    if y == 0:
        return "Error: Division by zero!"
    return x / y  # 直接返回 float 类型,无需显式 float()

# 主循环:持续提供菜单并处理用户输入
while True:
    print('''Please select operation
        1. Add  
        2. Subtract  
        3. Multiply   
        4. Divide
        5. Exit''')

    try:
        select = int(input("Select operations from 1, 2, 3, 4, 5: "))
    except ValueError:
        print("Invalid input! Please enter a number.")
        continue

    if select == 5:
        print("Goodbye!")
        break  # 推荐用 break 替代 exit(),更可控、可维护

    # 验证操作选项范围
    if select not in [1, 2, 3, 4]:
        print("Invalid choice! Please select 1–5.")
        continue

    try:
        x = float(input("Enter 1st number: "))  # 支持小数运算
        y = float(input("Enter 2nd number: "))
    except ValueError:
        print("Invalid number input! Please enter numeric values.")
        continue

    # 执行对应运算
    if select == 1:
        result = add(x, y)
        print(f"The addition of {x} and {y} is: {result}")
    elif select == 2:
        result = sub(x, y)
        print(f"The subtraction of {x} and {y} is: {result}")
    elif select == 3:
        result = mul(x, y)
        print(f"The multiplication of {x} and {y} is: {result}")
    elif select == 4:
        result = div(x, y)
        print(f"The division of {x} by {y} is: {result}")

✅ 关键改进点说明:

  • 使用 while True: 实现持续交互,配合 break 安全退出;
  • 将菜单打印放入循环内,每次操作后自动刷新选项;
  • 增加 try-except 异常处理,防止非数字输入导致崩溃;
  • 对除零错误进行校验,提升鲁棒性;
  • 改用 float() 输入,支持小数运算,增强实用性;
  • 优化输出格式,显示参与运算的具体数值,提升用户体验。

? 小贴士: 若希望用户输入 exit、q 或空行也能退出,可进一步扩展输入解析逻辑(如 if select in ['5', 'exit', 'q', '']: break),使交互更灵活。但对初学者而言,当前结构已兼顾清晰性、健壮性与教学价值。

热门AI工具

更多
创客贴AI

创客贴AI是一款AI图像与设计工具,AI辅助的智能在线设计工具。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

相关专题

更多
css中float用法
css中float用法

css中float属性允许元素脱离文档流并沿其父元素边缘排列,用于创建并排列、对齐文本图像、浮动菜单边栏和重叠元素。想了解更多float的相关内容,可以阅读本专题下面的文章。

6827

2024.04.28

C++中int、float和double的区别
C++中int、float和double的区别

本专题整合了c++中int和double的区别,阅读专题下面的文章了解更多详细内容。

784

2025.10.23

while的用法
while的用法

while的用法是“while 条件: 代码块”,条件是一个表达式,当条件为真时,执行代码块,然后再次判断条件是否为真,如果为真则继续执行代码块,直到条件为假为止。本专题为大家提供while相关的文章、下载、课程内容,供大家免费下载体验。

354

2023.09.25

java中break的作用
java中break的作用

本专题整合了java中break的用法教程,阅读专题下面的文章了解更多详细内容。

2880

2025.10.15

java break和continue
java break和continue

本专题整合了java break和continue的区别相关内容,阅读专题下面的文章了解更多详细内容。

807

2025.10.24

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

60

2026.10.22

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

40

2026.10.22

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

40

2026.10.22

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

20

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn