C++编程问题请大神赐教

为什么我输入Y或者N的时候会是这样?
现在正在下雨现在正在下雨吗
(Y/N)

#include
using namespace std;

int main()
{
char a;
int b;
while (a=1) {

    cout << "现在正在下雨吗" << '\n' << "(Y/N)" << endl;
    cin >> a;
    switch (a) {
    case 'Y':
        cout << "现在正在下雨";
        a = 2;
        break;
    case'N':
        cout << "现在没有下雨";
        a = 2;
        break;
    default:
        a = 1;





    }
}



return 0;

}

5个回答

图片说明

 // Q695122.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

#include <iostream>
using namespace std;

int main()
{
    char a = '1';
    int b;
    while (a=='1') {

        cout << "is raining now?" << '\n' << "(Y/N)" << endl;
        cin >> a;
        switch (a) {
        case 'Y':
            cout << "raining";
            a = '2';
            break;
        case'N':
            cout << "not raining";
            a = '2';
            break;
        default:
            a = '1';
        }
    }
    return 0;
}


caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复caozhy: 如果问题解决,麻烦帮我点个采纳,谢谢
一年多之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复qq_41517828: while 的条件不成立,不进入循环。
一年多之前 回复
qq_41517828
qq_41517828 好了搞定了,问一下为什么刚开始要char='1'
一年多之前 回复

char a;
->
char a = '1';

while (a=1)
->
while (a==1)

qq_41517828
qq_41517828 不行,还是一样,而且会报错
一年多之前 回复

while (a=1)
->
while (a=='1')

a = 2;
->
a = '2';

a = 1;
->
a = '1';

qq_41517828
qq_41517828 回复caozhy: 不是,我输入大写,谢谢你
一年多之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复qq_41517828: 会不会你输入的是小写的 y n
一年多之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复qq_41517828: 看下面的截图和完整的代码。
一年多之前 回复
qq_41517828
qq_41517828 也还是这样
一年多之前 回复
qq_41517828
qq_41517828 b
一年多之前 回复
qq_41517828
qq_41517828 我把a改成
一年多之前 回复

while(a=1)会始终为真,应该是a==1吧

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问