while 里的scanf如何理解

img

while 里的scanf如何理解想了半天都没有理解whlie不是从上到下执行吗/但是也没有让我输入就结束了

img

没啥问题呀,输一个字符按回车,输一个字符按回车这样

首先要理解scanf是怎么样录入的
你您输入一个字符后再回车,第一次只拿走了字符,第二次while再进来的的时候scanf拿走回车(\n)
比如说这个程序的执行流程是这样:
先scanf录入一个字符
如果不等于'g',那么进入while循环
然后再到屏幕上打印录入的字符
接下来scanf语句执行
(你录入的字符,会以ASCII值形式存放在一个缓冲区,每次进来就录入一个
举个例子 你输入CSDN go,第一次进来就拿走C,第二次进来拿走S,读完为止)
所以你输入一次,就行,然后while循环进来,scanf每次就在缓冲区拿字符
我有篇文字讲到了关于scanf的录入形式,您有空可以看看