C++ 计算器跳过 Else 语句

2023-12-26

我正在用 C++ 制作一个简单的计算器。然而,该程序并没有完全按照应有的方式运行。运行时,trig if 语句执行良好,但是基本算术 else 语句不起作用。我确定代码没有执行 else 语句,并且想知道如何修复它。 else 语句中的代码工作正常,因为我已经注释掉了 if 语句。帮助?

这是我的代码:

#include "stdafx.h"
#include <iostream>
#include <string>
#include <cmath>


int main()
{
    double input = 0;
    double firstnumber = 0;
    double secondnumber = 0;


    std::string function;
    std::string operation;


    std::cout << "Enter your calculation: ";
    std::cin >> function;   


    if(function == "sin" || "cos" || "tan")
    {
        if(function == "sin")
        {
            std::cin >> input;
            std::cout << "The sine is " << sin(input) << std::endl;
            system("PAUSE");
        }
        else if(function == "cos")
        {
            std::cin >> input;
            std::cout << "The cosine is " << cos(input) << std::endl;
            system("PAUSE");

        }
        else if(function == "tan")
        {
            std::cin >> input;
            std::cout << "The tangent is " << tan(input) << std::endl;
            system("PAUSE");
        }
    }
    else
    {       

        firstnumber = ::atof(function.c_str());
        std::cin >> operation;
        std::cin >> secondnumber;


        double valueadd = firstnumber + secondnumber;
        double valuesubtract = firstnumber - secondnumber;
        double valuemultiply = firstnumber * secondnumber;
        double valuedivide = firstnumber / secondnumber;


        if(operation == "+")
        {      
            std::cout << " = " << valueadd << std::endl;
            system("PAUSE");
        }
        else if(operation == "-")
        {          
            std::cout << " = " << valuesubtract << std::endl;
            system("PAUSE");
        }
        else if(function == "*")
        {
            std::cout << " = " << valuemultiply << std::endl;
            system("PAUSE");
        }
        else if(function == "/")
        {
            std::cout << " = " << valuedivide << std::endl;
            system("PAUSE");
        }

        else
        {
            std::cout << "Error" << std::endl;
            return 0;
        }
    }
    return 0;
}

这条线是错误的。

if(function == "sin" || "cos" || "tan")

它应该是

if((function == "sin") || (function == "cos") || (function == "tan"))

请注意,该检查实际上是没有意义的,因为您已经分别检查了它们。你可以通过这样做来整理这个if, else if, else chain.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ 计算器跳过 Else 语句 的相关文章

随机推荐

  • 转发器内动态控件的视图状态问题

    最近 我在使用要添加动态控件的中继器时遇到了一个问题 虽然我有一个解决方法 在功能上完全符合我想要的功能 但我想知道是否有更好的方法为了我的理解 我使用 ASP NET 已经有大约 6 个月了 每次我认为我已经掌握了页面生命周期 视图状态时
  • 使用expect脚本从远程机器执行ssh

    我是expect脚本的新手 并且有一个用例 在该用例中 我需要从已经使用expect脚本完成ssh的机器上执行ssh 这是我的代码片段 usr bin expect f set timeout 60 spawn ssh email prot
  • 向 Google 地图添加多个标记

    我希望为 Google 地图 v3 API 中列出的每个商家添加标记在本页 http www inside guides co uk brentwood shops and shopping clothes shops html在右上角 我
  • 按列值动态过滤 jTable

    我需要根据特定列中的值动态过滤 JTable 因此 如果我有 2 列 例如 国家 地区 和 首都 我只想按 国家 地区 列进行过滤 我通过实现以下代码找到了问题的部分解决方案 import java awt BorderLayout imp
  • 在 t.string 的预定义值中进行选择

    是否有可能创建一个 collection select or select tag for a t string 用户可以在哪里选择字符串的预定义值 并且只允许将那些值存储在字符串的数据库中 例如 t string relationship
  • 使“gradle javadoc”任务与 Java 9 一起工作

    我有一个使用 source target 1 9 1 9 的多模块 Gradle Java 项目 有两个模块 my base and my dependsOnBase The my base模块没有其他依赖项 module my base
  • Spring 中的 ElasticSearch 与 @Query

    我已经使用 ElasticSearch 的 plugin head 接口成功创建了一个查询 该查询旨在返回特定位置的特定设备的最新时间戳 该查询如下所示 query bool must term deviceevent location i
  • 如何在 Bash 中拆分带引号的字符串?

    很少有问题 https stackoverflow com questions 918886 how do i split a string on a delimiter in bash关于如何通过给定分隔符拆分 Bash 脚本中的字符串有
  • android android.provider.MediaStore.ACTION_VIDEO_CAPTURE 返回 null onActivityResult 与 Nexus 7

    我正在使用意图来录制视频 所以我在 recordVideo 按钮的单击上使用以下代码 Videofilepath Intent intent new Intent android provider MediaStore ACTION VID
  • 在公共存储库中隐藏密钥

    我正在开发一个开源 JavaScript 应用程序 我正在尝试与第三方 API 特别是 github 进行交互 我试图将整个应用程序保留在客户端 所以我真的没有服务器可以回退或存储隐藏文件 作为 OAuth 流程的一部分 我需要提供为我的
  • 时间选择器显示时间为 4:7 而不是 04:07

    我有一个时间选择器功能 可以在 EditText 中设置时间 但它显示的格式不合适 例如 04 07pm 显示为 4 7 当时间中的数字小于 10 时 它会自动删除 0 请帮帮我 我的代码是 if v btnTimePicker1 Proc
  • 选择使用 IIS 的 WCF 服务托管或使用 Windows 服务的自托管

    因为我们想要使用 Asp Net MVC 3 开发一个新产品 这里的关键点是我们通过 WCF Web 服务与数据库对话的所有内容 我们正处于需要决定是在 IIS 中托管 WCF Web 服务还是使用 Windows 服务自托管的阶段 我提出
  • 带有滚动条的文本区域的圆角

    在我的网站上我有一个 htmltextarea框中有大量文本 因此它有一个滚动条 好吧 我想在我的文本区域上有圆角 但是滚动条看起来很糟糕 这是我的 HTML 片段
  • 变量名长度对 C# 性能重要吗?

    我一直想知道在 WinForms C 中使用长描述性变量名称是否对性能有影响 我问这个问题是因为在 AutoIt v3 解释语言 中提出了具有短名称的变量 例如aa代替veryLongVariableName速度要快得多 当程序大于 5 行
  • 弹簧接线,单例与原型

    刚刚阅读了 spring 的内容 当在 spring 中使用 DI 时 如果将 bean 设置为单例 默认 则将 分配 该类的单个实例 而原型每次都会强制创建一个新实例 每次容器分配相同的实例会产生什么后果 这是否意味着会有共享状态 也就是
  • 无法使用 Excel Interop 安排程序

    我用 C NET 开发了一个控制台程序 它使用 Excel Interop 如果我从命令行运行该程序 则该程序在我的开发计算机和 Windows Server 2008 中运行得很好 当我尝试安排任务每天运行时 我收到了这个恼人的互操作错误
  • ARM/neon memcpy 针对*未缓存*内存进行了优化?

    我使用的是基于 Xilinx Zynq 7000 ARM 的 SoC 我正在努力处理 DMA 缓冲区 需要帮助映射 Xilinx ARM SoC Zynq 7000 上的预留 可缓存 DMA 缓冲区 https stackoverflow
  • 通过 using 块使用 Process [重复]

    这个问题在这里已经有答案了 可能的重复 如果我不关闭 C 控制台应用程序中的 System Diagnostics Process 会发生什么情况 https stackoverflow com questions 185314 what
  • 即使 contentSize 大于框架并且在设置内容大小之前添加子视图,scrollView 也不起作用

    void viewDidLoad super viewDidLoad self navigationController navigationBar translucent YES self navigationController nav
  • C++ 计算器跳过 Else 语句

    我正在用 C 制作一个简单的计算器 然而 该程序并没有完全按照应有的方式运行 运行时 trig if 语句执行良好 但是基本算术 else 语句不起作用 我确定代码没有执行 else 语句 并且想知道如何修复它 else 语句中的代码工作正