我做了一个基本的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');
答案 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 ++中没有任何运算符,如你所使用的“!==”。如果要检查相等性,请使用==,如果要检查不相等,请使用!=。
由于