0基础初学提问:为什么if语句不执行呀??而且提示the variable ' rain ' is being used without being initialized

0基础初学提问:为什么if语句不执行呀??而且提示the variable ' rain ' is being used without being initialized

问题描述:

图片说明

如果输入Y能够正常执行,但是输入N再按回车就会提示说‘rain’未被初始化

关于if-elseif语句还是不太清楚TAT
请大佬指正出错误,万分感谢!!TAT

char freetime = 0, rain = 0;
vc++额外检查变量初始化,别的编译器不检查,所以这个错误你没有见过,加上就好。

你直接写freetime=getchar()或者 rain=getchar()不行吗?

可以把变量都初始化一下

你只定义的char变量rain,但并没有在执行第一个if语句前为其赋值(也就是报错里说的without being initailized),所以在freetime != Y的情况下,并不会执行scanf_s("%c",&rain,sizeof(char)),也就不会为rain赋值

if里面的内容不一定执行,所以尽量不要把scanf写在if语句里面。在这里编译器认为变量rain有“不初始化而直接使用”的风险