如果语句,我该如何纠正此问题
How can I remedy this if statement?
我正在尝试创建一个简单的'fizzbuzz'程序,每次打印3个倍数时,都会在其旁边打印'fizz',并且每次打印5个倍数时,"嗡嗡声"在其旁边打印出来。 但是,在此程序中发生的是,第一个IF语句每次都是正确的,并且输出每个数字都有"嗡嗡声!"在它旁边。为什么会发生这种情况?为了正确编程,我需要意识到什么?
for(int index = 1; index <= 100; ++index) {
cout << index << endl;
if (index == 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100)
cout << " Buzz!" << endl;
else if(index == 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99)
cout << " Fizz!" << endl;
}
c 中的逗号运算符意味着完全不同的东西 - 它分开了两个表达式,忘记了第一个的结果并返回第二个的值。
因此,从技术上讲,第一个陈述可以缩短为:
if (100) {
...
始终是正确的(C/C 中的任何非零表达式评估为true)。
为了避免如此多的比较,您实际上可以使用%
操作员。
if (i%5 == 0) {
cout << " Buzz!" << endl;
}
else if (i%3 == 0) {
cout << " Fizz!" << endl;
}
可以使用模量(%)轻松清洁。
for(int index = 1; index <= 100; ++index) {
cout << index << endl;
if (index % 5 == 0)
cout << " Buzz!" << endl;
else if(index % 3 == 0)
cout << " Fizz!" << endl;
}
相关文章:
- 警告处理为错误这里有什么问题
- 最小硬币更换问题(自上而下方法)
- 为"adjacent"变量赋值时出现问题
- 我的神经网络不起作用 [XOR 问题]
- 在Ubuntu 16.04上安装Cilk时出现问题
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 编译包含字符串的代码时遇到问题
- Project Euler问题4的错误解决方案
- 问题:什么是QAbstractItemView::NoEditTriggers的反面
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 静态数据成员的问题-修复链接错误会导致编译器错误
- C++ 雷神库 - 使用资源加载器类时出现问题(不命名类型)
- 一个关于在C++中重载布尔运算符的问题
- 首要问题的答案让值班员搞错了
- setlocale的C++土耳其字符串问题
- 标准对此指向成员函数类型模板参数有何说明?是我的代码有误,还是 MSVS 16.6 有问题?
- 如果语句,我该如何纠正此问题
- opencv 立体声的问题纠正未校准
- 请纠正我的异常处理问题