c++ - 创建一个程序,要求用户输入两个数字并具有三个可能的答案。代码未编译。数字(作为整数)
问题描述
所以我最近开始使用 C++,其中一个挑战是创建一个程序,它要求输入两个数字,它必须说是否;其中一个数字是正数,要么都是正数,要么都不是正数。我试图制作一个没有 if 的开关结构,但它似乎没有成功。这是我的代码。
#include <iostream>
using namespace std;
int main()
{
int number;
int number2;
cout <<"Introduce two numbers:" ;
cin >> number, number2;
switch(number)
{
case (number > 0) (number2 > 0): cout <<"Both numbers are positive.";
break;
case (number > 0) (number2 < 0): cout <<"One of the numbers is positive.";
break;
case (number < 0) (number2 > 0): cout <<"One of the numbers is positive.";
break;
case (number < 0) (number2 < 0): cout <<"None of the numbers are positive.";
break;
default: cout <<"It must be a number.";
}
return 0;
}
我得到的编译错误如下。在函数'int main()'中:
[错误]“数字”不能出现在常量表达式中
[错误] 'number2' 不能出现在常量表达式中
[错误] 函数调用不能出现在常量表达式中
[错误]“数字”不能出现在常量表达式中
[错误] 'number2' 不能出现在常量表达式中
[错误] 函数调用不能出现在常量表达式中
[错误]“数字”不能出现在常量表达式中
[错误] 'number2' 不能出现在常量表达式中
[错误] 函数调用不能出现在常量表达式中
[错误]“数字”不能出现在常量表达式中
[错误] 'number2' 不能出现在常量表达式中
[错误] 函数调用不能出现在常量表达式中
解决方案
您遇到的问题是switch
语句中的案例只能采用常量。
例如这是有效的:
switch (number)
{
case 0:
// Do something because number is 0
break;
case 1:
// Do something because number is 1
break;
case -5:
break;
//etc...
}
基本上你不能在case
关键字之后使用变量。因此,您需要使用if
s 来做您想做的事情,而使用 s 是不可能的switch
。
更多关于开关语句的阅读: http ://www.tutorialspoint.com/cplusplus/cpp_switch_statement.htm
推荐阅读
- amazon-web-services - 无法 ping 辅助接口专用 IP
- javascript - 自动显示选项
- angular - NgbModal 未从另一个组件中包含的组件打开模态
- python - 字典列表中的 Pandas DataFrame(找不到此配置)
- r - 在 R 中更改数据框对象结构
- javascript - 为什么我不能读入我的输入值并显示警报?
- security - 安全存储用于屏幕抓取的凭据
- javascript - 使其表格单元格不会因为内容而垂直扩展
- c# - ASP.NET EnableViewStateMac 跨站脚本
- javascript - 是否可以在 browser/node.js 中获取 ES2015 模块名称?