close(ch4)后,下一次循环还会进入case语句吗?就算没有close,ch4也是空的了啊。这里不太明白
其实case可以理解为尝试读取ch4,这时会发生两种情况,一种是读取到数据,一种是没读取到数据,如果读取不到数据,则default条件成立;如果读取到数据,这时又分为两种情况,一种是读取正常的数据,且通道也正常(ok为true);另外一种情况是通道关闭了,这时读取到的值是:e为零值,这里为int的0,然后ok为false,表示通道已经关闭。所以,如果没有close,第三次循环就会又进入 default 语句,然后ch4会再次被赋值,在第四次执行时,再次输出1
case和ch4是否关闭并没有关系,即使ch4关闭,循环依旧会继续执行。
ch4为空和ch4被关闭是两种情况。