C++ for循环中的If语句
如何在for循环中只运行其中一个if语句?例如,我有一个5…的输入,我只希望它打印5…但每当我运行这段代码时,它都会执行all if语句..请帮助我C++ for循环中的If语句,c++,if-statement,for-loop,C++,If Statement,For Loop,如何在for循环中只运行其中一个if语句?例如,我有一个5…的输入,我只希望它打印5…但每当我运行这段代码时,它都会执行all if语句..请帮助我 #include <iostream> #include <cstdio> using namespace std; int main() { // Complete the code. int a; int b; cin >> a; for (a = 0; 0<
#include <iostream>
#include <cstdio>
using namespace std;
int main() {
// Complete the code.
int a;
int b;
cin >> a;
for (a = 0; 0<a<10; a++)
{
if (a == 1)
{
cout << "one";
}
if (a == 2)
{
cout << "two";
}
if (a == 3)
{
cout << "three";
}
if (a == 4)
{
cout << "four";
}
if (a == 5)
{
cout << "five";
}
if (a == 6)
{
cout << "six";
}
if (a == 7)
{
cout << "seven";
}
if (a == 8)
{
cout << "eight";
}
if (a == 9)
{
cout << "nine";
}
else if (a > 9 && a%2 == 0)
{
cout << "even";
}
else if (a > 9 && a&2 != 0)
{
cout << "odd";
}
}
return 0;
}
#包括
#包括
使用名称空间std;
int main(){
//完成代码。
INTA;
int b;
cin>>a;
for(a=0;0您不必要的for
循环会破坏a
的输入值,并永远循环!(至少直到您的签名类型a
溢出为止)
您正在将a
替换为for
循环中的计数器!如果您只需要一个输出,请完全删除for
循环。如果要保留for
循环,则应将表达式0
重新编译为0
:正式地0
>被评估为(0
,该值为true<10
或false<10
,该值始终为true
还考虑重构您的<代码>如果是“< /COD>”,设置明确的互斥语句:
if (a == 1){
cout << "one";
} else if (a == 2){
cout << "two";
/*and so on*/
} else {
/*all other cases*/
}
虽然,
switch() {
}
在你的情况下会更有效率
更新1
@Aleph0
下面是解决方案
int main() {
int a;
cin >> a;
switch (a) {
case 1: cout << "one"; break;
case 2: cout << "two"; break;
case 3: cout << "three"; break;
case 4: cout << "four"; break;
case 5: cout << "five"; break;
case 6: cout << "six"; break;
case 7: cout << "seven"; break;
case 8: cout << "eight"; break;
case 9: cout << "nine"; break;
default: cout << ((a & (1 << 31)) ? "negative" : (a & 1) ? "odd" : "even"); break;
}
}
intmain(){
INTA;
cin>>a;
开关(a){
案例1:cout问题似乎是for
循环。您的程序接受a
的值作为输入,但一旦循环开始,它就会将a
的值重置为0(for(a=0;…
因此,它循环10次,在每个循环上,a
将有一个不同的值,从0开始到9结束。这意味着所有if
语句将在执行过程中的某个点被命中,通常在for
的每个循环上都有一个
要获得您预期的行为“输入5…我只希望它打印5”,只需从代码中删除for
循环。您想要实现什么?您在a中获取输入,但在循环中再次将a初始化为0。删除for
循环。您需要找到a并读取条件表达式。在(不必要)for
循环不正确。阅读本书时,瑞德谈到了switch
语句和数组(你不需要一大串if-else
或switch
语句).0抱歉@downvorters,我一开始的时候的确是搞错了。如果一个问题让我使用for循环并要求我输出:对于每个整数(所以该范围内的所有数字):如果,19,并且它是奇数,那么打印“奇数”怎么办。答案不错,但别忘了提及关于0switch() {
}
int main() {
int a;
cin >> a;
switch (a) {
case 1: cout << "one"; break;
case 2: cout << "two"; break;
case 3: cout << "three"; break;
case 4: cout << "four"; break;
case 5: cout << "five"; break;
case 6: cout << "six"; break;
case 7: cout << "seven"; break;
case 8: cout << "eight"; break;
case 9: cout << "nine"; break;
default: cout << ((a & (1 << 31)) ? "negative" : (a & 1) ? "odd" : "even"); break;
}
}