我无法弄清楚我的情况需要与角色有什么关系

时间:2017-07-10 05:52:41

标签: c if-statement char conditional-statements

所以我一直在试图弄清楚如何为我的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;
        }

3 个答案:

答案 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;

    }