C++初学者的的问题,一个基础问题

img


#include<iostream>
using namespace std;

int main()
{
    char ch;
    cout<<"现在正在下雨吗?"<<endl;
    cin>>ch;
    while(ch>=97 && ch<=122){
      if(ch==110){
        cout<<"现在正在下雨!"<<endl;
        break;
    }
      else if(ch==121){
        cout<<"现在没有下雨!"<<endl;
        break;
    }
      
  }
    return 0;
}

我刚学习C++,上面是问题,下面是我自己写的代码,但问题是,我不知道如何达到问题要求那样,如果输入不是要求的字母,怎样再从头循环。还有就是他给的那个函数怎么用,麻烦看一下,能给个完整代码,如果再能有详细注释就太感谢了。

 
#include<iostream>
using namespace std;
 
int main()
{
    char ch;
    cout<<"现在正在下雨吗?"<<endl;
    cin>>ch;
    while(ch>=97 && ch<=122){
      if(ch==110){
        cout<<"现在正在下雨!"<<endl;
        break;
    }
      else if(ch==121){
        cout<<"现在没有下雨!"<<endl;
        break;
    }
          cout<<"现在正在下雨吗?"<<endl;
    cin>>ch;
  }
    return 0;
}

#include<iostream>
using namespace std;
int main()
{
    char ch='0';
    while(ch != 'Y' && ch != 'N')
    {
        cout << "现在正在下雨吗?(Yes or No):" << endl;
        cin >> ch;
        ch = toupper(ch);   //输入小写字符,将其转换为大写
    }
    if (ch == 'Y') {
        cout << "现在正在下雨!" << endl;
    }
    else if (ch == 'N') {
        cout << "现在没有下雨!" << endl;
    }

    return 0;
}