对C ++中while()循环的理解

狮子座

我正在编写一个代码,使用户能够确定三明治销售业务的利润。但是,我在使用while()时遇到了问题。

int sandwichtype=1;

cout << "Enter the type of sandwich" << endl
     << "Input 1 for cheese, 2 for veggie, 3 for customed" << endl << endl
     << "Sandwich type: ";

while (sandwichtype > 0 && sandwichtype < 4)
cin >> sandwichtype;

我要限制用户输入的数字不是1、2或3。但是,当我进行编译时,编译器会执行相反的操作。为什么会这样,解决方案是什么?

来自莫斯科的弗拉德

尝试以下

int sandwichtype;

do
{
    cout << "Enter the type of sandwich" << endl
         << "Input 1 for cheese, 2 for veggie, 3 for customed" << endl << endl
         << "Sandwich type: ";
    cin >> sandwichtype;
} while ( sandwichtype < 1 || sandwichtype > 3 );

至于你的while语句

while (sandwichtype > 0 && sandwichtype < 4)
cin >> sandwichtype;

当用户输入有效选择时进行迭代,并在用户输入无效选择时停止迭代。

另外,您应检查用户是否没有中断输入。例如

do
{
    cout << "Enter the type of sandwich" << endl
         << "Input 1 for cheese, 2 for veggie, 3 for customed" << endl << endl
         << "Sandwich type: ";

    sandwichtype = 0;
} while ( cin >> sandwichtype && ( sandwichtype < 1 || sandwichtype > 3 ) );


if ( sandwichtype == 0 ) cout << "Oops! The user does not want to contact.";

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C中的While循环

来自分类Dev

在C中优化while循环?

来自分类Dev

在C中优化while循环?

来自分类Dev

汇编中的C while循环

来自分类Dev

在C中优化while循环?

来自分类Dev

C中while循环的阶乘

来自分类Dev

C中的while循环-读取前哨变量

来自分类Dev

C#中的While循环问题

来自分类Dev

C中的While循环,未执行条件

来自分类Dev

类中的while循环不会执行c ++

来自分类Dev

C#中的While循环问题

来自分类Dev

C ++中的整数和while循环...如何?

来自分类Dev

C ++中的while循环无法退出

来自分类Dev

C ++中的While循环(使用break)

来自分类Dev

在 C 编程中退出 while(1) 循环

来自分类Dev

如何在feof()中增加while循环以在C中读取

来自分类Dev

如何在feof()中增加while循环以在C中读取

来自分类Dev

While / For循环不会循环。(C ++)

来自分类Dev

C跳过“ while”循环?

来自分类Dev

打破While循环C ++

来自分类Dev

简单的C ++ while循环

来自分类Dev

在while循环中读取C中的整数后,scanf被跳过

来自分类Dev

C-离开while循环后覆盖数组中的值

来自分类Dev

C ++中while循环中的浮点错误

来自分类Dev

在C中的while循环中发布增量

来自分类Dev

弄清楚C中while / if循环的逻辑

来自分类Dev

在C fork中,while()循环后printf()没有执行

来自分类Dev

在Objective-C中暂停执行WHILE循环的最佳方法

来自分类Dev

使用While循环在C中的管道之间发送数据