看C语言的视频,其中一个关于!finished的案例看不明白,这是我自己写的简化版
#include <stdio.h>
int main() {
int finished = 0;
do{
printf("0\n"); // 值为0
if(!finished) { // ??
printf("1\n");
}
finished = 2; // 值改为2
printf("%d\n", finished);
} while(!finished); // 结束循环
}
如果不改值,会循环输出010101……
按我的理解,原本的值是0,!finished就是非0的意思,为什么会在 if 语句中输出呢?
int finished = 0;
if(!finished)
while(!finished)
0为假,不执行,如果要执行就得加入!
判断之分真和假,不分数字大小的。0就是为假
if(!finished) { // ??
printf("1\n");
}
这里的输出因为不带任何变量,更多的作用在于输入1这个值,逻辑结构就是!finished非0就输出1
望采纳
!是一个单独的运算符,finished为true,!finished就是false,开发中,0为false,其他的值都是true
finished就是非0的意思是真,然后就会在if里面输出结果1