如何在C ++中每次循环运行时将变量递增1?

时间:2013-12-14 14:48:54

标签: c++

我做了一个基本的while while循环,我想输出左边的汽车租赁和屏幕右边的voucherno。如果用户想要重复该过程,那么凭证号应该增加1.另一件事是我的while表达式有什么问题, 它说在=令牌之前预期表达。


   do {
        unsigned short voucherno=0;
        char processanother;
        cout<<"CAR HIRE"<<setw(4)<<setfill('0')<<"Voucher Number:"<<voucherno++;
        cout<<"Repeat again to test the loop Y/N?";
        cin>>processanother;
   }
    while(processanother!=='y'||process!=='Y');

3 个答案:

答案 0 :(得分:6)

使用for循环或在循环外声明变量。请注意,for循环中的条件实际上可以是任何条件,它不需要查看其他两个表达式使用的相同变量。

char processanother = 'y';
for (unsigned short voucherno=0;
     processanother=='y' || processanother =='Y';
     ++voucherno) {
  std::cout << ...
  std::cin >> processanother;
}

编写代码的方式,每次迭代都会创建一个新变量voucherno

@qwr说:运营商是!=,而不是!==。但我相信你还是想要==

答案 1 :(得分:0)

如果你在do while循环中定义voucherno,那么voucherno是一个局部变量。每个循环都被定义为0.所以你不会得到实际的计数。因此,在do-while循环之前定义voucherno。

在C ++中,如果你想测试两个变量是否相等,你可以使用==运算符。如果您想测试它们是否不同,请使用!=运算符代替!==!==是非法的。

答案 2 :(得分:0)

unsigned short voucherno=0;
do {

    char processanother;
    cout<<"CAR HIRE"<<setw(4)<<setfill('0')<<"Voucher Number:"<<voucherno++;
    cout<<"Repeat again to test the loop Y/N?";
    cin>>processanother;
}
while(processanother=='y'||process=='Y');

您的代码中有两个错误。   1. voucherno变量在side循环中声明,因此它不会显示递增的值,每次循环它将被声明并分配为零,因此它将显示零(0)  2.另一个错误,条件是在C ++中没有任何运算符,如你所使用的“!==”。如果要检查相等性,请使用==,如果要检查不相等,请使用!=。

由于