C++代码以使用开关和"?:"测试正/负
C++ code to test for positive/negative using switch and "?:"
我的任务是编写代码来使用开关和"?:"测试数字是正数、负数还是零。这是我所拥有的。负值似乎不起作用,我不知道如何实现零。事实上,我不太了解整个 case1、case2 和 switch 语法以及它通常是如何工作的。
#include <iostream>
using namespace std;
int main()
{
int a;
int b;
cout << "Please enter the value to be tested: ";
cin >> a;
(a > 0) ? (b = 1) : (b = 2);
switch (b)
{
case 1:
cout << "The given value is positive." << endl;
break;
case 2:
cout << "The given value is negative." << endl;
break;
}
return 0;
}
switch 语句:
switch 语句提供了
if
的方便替代方法,当 处理多路分支。假设我们有一些整数值 调用测试并希望根据是否执行不同的操作 它具有值 1、5 或任何其他值,然后是 switch 语句 可以雇用
语法:
switch(expression resulting to integer literals/integer literals/enumeration types/){
case constant-expression :
statement(s);
break; //optional
case constant-expression :
statement(s);
break; //optional
// you can have any number of case statements.
default : //Optional and one default statement can be present for a switch
statement(s);
}
以下规则适用于 switch 语句:
- switch 语句中使用的表达式必须具有整数或枚举类型,或者属于类具有将函数转换为整型或枚举型。
- 一个开关中可以有任意数量的案例语句。每个案例后跟要比较的值和一个冒号。
- 事例的常量表达式必须与变量,它必须是常量或文本。
- 当打开的变量等于一个案例时,
该案例之后的语句将一直执行,直到中断语句
已达到。 - 当达到中断语句时,交换机终止,并且
控制流跳转到开关
后的下一行陈述。 - 并非每个案例都需要包含中断。如果未出现中断,
则控制流将下降到后续案例,直到中断
已达到。 - switch 语句可以有一个可选的默认大小写,它必须
显示在交换机的末尾。默认大小写可用于
在没有任何情况为真时执行任务。无需休息在默认情况下。
它的工作原理如下:-
- 表达式(在本例中仅为测试)将被计算。
- 依次检查与价值。
- 如果没有匹配项,并且可选默认标签存在,则为选定,否则从开关复合语句进行控制传递
- 如果找到匹配的标签,则从那里继续执行。控制然后向下传递交换机内所有剩余的标签陈述。由于这通常不是想要的,因此
break
语句通常添加在下一个要转移的案例标签之前控制开关语句。 当您想要执行相同的操作时,会出现一个有用的异常处理两个或多个值。假设您想要值 1 和10 做同样的事情,然后:-
案例 1 :/*.任意数量的案例 .*/案例10: 处理以下案例 1 至 10 的语句 破;
有效是因为测试 = 1 个案例只是"通过"到下一部分。
条件运算符:
三元运算符 (?:) 是 C 和 C++ 中使用的非常有用的条件表达式。它的效果类似于 if 语句,但具有一些主要优点。
因此,使用三元运算符的基本语法为:
(condition) ? (if_true) : (if_false)
这基本上与:
if (condition)
if_true;
else
if_false;
因此,如果 "condition" 为 true,则执行第二个表达式 ("if_true"),如果不是,则执行第三个表达式 ("if_false")。
为您代码:
你可以用任何一种方法来查找,一种方法是,
#define POSITIVE (1)
#define NEGATIVE (-(1))
#define ZERO (0)
switch ( ( user_input >= ZERO )? POSITIVE : NEGATIVE )
{
case POSITIVE:
if( user_input == ZERO )
{
cout << "The given value is a Zero." << endl;
}
else
{
cout << "The given value is positive." << endl;
}
break;
case NEGATIVE:
cout << "The given value is negative." << endl;
break;
}
相关文章:
- 我如何测试代码没有调用 exit()
- 如何在使用 C 函数时测试C++代码
- 使用 gtest 框架在单元测试代码中检查目标对象的私有变量的最佳实践是什么?
- 外部 "C" Visual Studio 2015 中的显式类型错误,DLL 测试代码
- std::sort / 适用于测试代码,但无法推断出模板
- 泄漏测试代码shared_ptr奇怪的结果
- 构建和链接 Crypto++ 的测试代码
- 最佳实践:使用随机数生成器的测试代码
- VS2010在尝试编译基本JNI测试代码时出错
- UDP测试代码未接收消息(C++)
- 非测试代码中的 gtest 断言
- gtkmm 和 gstreamermm 测试代码抛出运行时错误
- 具有大量相互依赖条件的单元测试代码
- 编译测试代码时C++错误"undefined reference to"
- 测试c++代码:使用测试库
- 使用Java单元测试c++代码
- 如何从Chromium运行测试代码?
- 将测试代码构建为库或可执行文件
- CppUnit,很简单的测试代码崩溃了,为什么
- 级联结构指针测试代码中的分段错误