C++代码以使用开关和"?:"测试正/负

C++ code to test for positive/negative using switch and "?:"

本文关键字:测试 代码 开关 C++      更新时间:2023-10-16

我的任务是编写代码来使用开关和"?:"测试数字是正数、负数还是零。这是我所拥有的。负值似乎不起作用,我不知道如何实现零。事实上,我不太了解整个 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;
}