所以我一直在试图弄清楚如何为我的if语句使用正确的条件(我知道代码本身有些丑陋,但我关注条件atm)。我希望它进入if语句,只要“theguess”(用户输入的字符)等于第一个if语句中的“H”或“h”,如果它等于第二个中的“T”或“t”声明,如果它不等于“H”,“h”,“T”或“t”表示第三个。我以前有过||而不是&&但那也行不通。请停止我
将字符输入或存储到变量中没有问题,只有我的逻辑存在缺陷。
编辑:我决定尝试&&的原因是因为它解决了别人问的类似问题。很抱歉,笨重的代码逻辑与我想要的不相符。
if (theguess == ('H') && ('h'))
{
P1score -= 5;
puts("-5 Points!");
}
if (theguess == ('T') && ('t'))
{
P1score += 10;
puts("+10 Points!");
}
if (theguess != ('H') && ('h') && ('T') && ('t'))
{
return 0;
}
答案 0 :(得分:0)
这里的错误是,
if (theguess == ('H') && ('h'))
应该是
if (theguess == ('H') || theguess == ('h'))
为什么不使用switch..case ??
答案 1 :(得分:0)
您正在尝试检查输入的字符是“h”还是“H”,那么为什么使用“AND”运算符?
您没有正确地给出条件。尝试如下,它将起作用。
#include<stdio.h>
int main()
{
char thought;
float P1score=0.0;
printf("Enter your thought\n");
scanf("%c",&thought);
if(thought=='h' || thought=='H')
{
P1score -= 5;
puts("-5 Points!");
}
else if (thought=='T'||thought== 't')
{
P1score += 10;
puts("+10 Points!");
}
else
{
return 0;
}
}
答案 2 :(得分:-2)
试试这个。你必须使用或 / ||因为如果你给出大写或小写字母,它会满足。如果它有效,请给我一样的。
if(theguess ==(&#39; H&#39;)|| theguess ==(&#39; h&#39;))
{
P1score -= 5;
puts("-5 Points!");
}
else if (theguess == ('T') || theguess == ('t'))
{
P1score += 10;
puts("+10 Points!");
}
else
{
return 0;
}
的