使用if if语句在C ++中检查范围

时间:2014-02-18 17:10:15

标签: c++ if-statement range

我试图使用if语句检查输入的数字是否符合我允许的范围。但显然它不起作用。这是我的if语句

用户输入重量,我检查它是否在小/重量

之间
  const float SMALL_WEIGHT        = 2.3f;      // low end 1st range weight
  const float TOP_SMALL_WEIGHT    = 4.3f;      // top end 1st range weight

  cout << "Enter the weight of the laptop: ";
  cin >> weight;

            if ( weight < SMALL_WEIGHT && weight > TOP_SMALL_WEIGHT )
           {
              cout << "The weight " << weight << " is not between "
                   << SMALL_WEIGHT << " and " << TOP_WEIGHT << endl;
              return 1;
           }

我尝试使用逻辑或||但它仍然无法正常工作。

编辑:这是整个代码

#include <iostream>    
#include <iomanip>    
using namespace std;

const float SALE_START_PRICE    = 500.0f;    // discount if more than 500
const float DISCOUNT_PCT        = .15f;      // 15% discount
const float TAX_PCT             = .075f;     // tax is 7.5%

const float SMALL_WEIGHT        = 2.3f;      // low end 1st range weight
const float TOP_SMALL_WEIGHT    = 4.3f;      // top end 1st range weight
const float TOP_MID_WEIGHT      = 5.8f;      // top 2nd range weight
const float TOP_WEIGHT          = 7.9f;      // top 3rd range weight

const float SMALL_SHIP          = 5.4f;      // 1st range basic ship charge
const float MID_SHIP            = 5.8f;      // 2nd range basic ship charge
const float TOP_SHIP            = 6.2f;      // 3rd range basic ship charge

const float SMALL_SHIP_PCT      = .025f;
const float MID_SHIP_PCT        = 2.75f;
const float TOP_SHIP_PCT        = 3.5;

int main()
{
   float    price, weight;
   float    discountAmount, salePrice;                              
   float    taxAmount, shippingCharges, totalSaleAmount;

   cout << "Enter the original price of the laptop: ";             
   cin  >> price;

   cout << "Enter the weight of the laptop: ";
   cin >> weight;


   if ( weight < SMALL_WEIGHT && weight > TOP_SMALL_WEIGHT )
   {
      cout << "The weight " << weight << " is not between "
           << SMALL_WEIGHT << " and " << TOP_WEIGHT << endl;
      return 1;
   }

   if ( price > SALE_START_PRICE )
   {
      discountAmount =  price * DISCOUNT_PCT;
   }
   else
       discountAmount = 0.00;

   taxAmount = price * TAX_PCT;
   salePrice = price - discountAmount;


   if (weight < TOP_SMALL_WEIGHT)
      shippingCharges = SMALL_SHIP + ( salePrice * SMALL_SHIP_PCT );
   else if ( weight >= TOP_SMALL_WEIGHT && weight < MID_SHIP )
      shippingCharges = MID_SHIP + ( salePrice * MID_SHIP_PCT);
   else
      shippingCharges = TOP_SHIP + ( salePrice * TOP_SHIP_PCT );

   totalSaleAmount = salePrice + taxAmount + shippingCharges;

   cout <<  fixed << showpoint << setprecision(2);
   cout << "The original price : $" << price << endl;
   cout << "The discount       : $" << discountAmount << endl;
   cout << "The sale price     : $" << salePrice << endl;
   cout << "The sales tax      : $" << taxAmount << endl;
   cout << "The shipping       : $" << shippingCharges << endl << endl;
   cout << "The total sale     : $" << totalSaleAmount << endl;

   return 0;                                      
}                             

1 个答案:

答案 0 :(得分:3)

weight不能小于SMALL_WEIGHT且大于TOP_SMALL_WEIGHT

我认为你想使用逻辑或||所以它变成了:

if (weight < SMALL_WEIGHT || weight > TOP_SMALL_WEIGHT)
{
    cout << "The weight " << weight << " is not between "
         << SMALL_WEIGHT << " and " << TOP_WEIGHT << endl;
    return 1;
}