C语言 for语句不循环

img

为什么是逻辑或||,你不可能同时等于这些字符,所以肯定为真退出循环,应该用逻辑与&&
或者写成if (sex == 'm' || sex == 'M'),把不等于换成等于

供参考:

#include<stdio.h>
#include<stdlib.h>

int main()
{
    int i;
    char sex;
    for (i = 0;;)
    {
        i++;
        printf("请输入:");
        scanf("%c", &sex);
        getchar();
        if (sex != 'm' && sex != 'M' && sex != 'f' && sex != 'F')
            break;
    }
    printf("录入正确的次数是:%d\n", i-1);
    return 0;
}

你这应该是要求用户输入m或者f表示性别吧
是否循环要看你的实现目标是什么?你到底要解决的是什么问题?是一旦用户输入不是m或者f就结束吗,还是不是m或者f就要一直继续呢?这决定你是用break还是continue啊
另外这个i计数用的也不对,还没确定输入是啥呢,就++了

所以,请说清楚你代码想实现的目标是什么

请问你这的问题是什么意思