在do-while循环语句中关于定义,判断布尔类型的问题

当定义boolean flag=false或者boolean flag=true时,该程序的运行结果是一样的。
while(flag)或者while(!flag)与定义的flag没有关系吗?while(flag)的含义永远是falg=true时继续,而while(!flag)的含义永远是!falg=true时继续吗?

public class Test {
public static void main(String[]args){
Scanner input=new Scanner(System.in);
boolean flag=false;
do{
System.out.println("请输入数据:");
int num=input.nextInt();
if(num<10){
System.out.println("继续执行:");
flag=true;
}
else{
System.out.println("程序中止!");
flag=false;
}
}while(flag);
}
}

do{}while()不管flag初始值是true还是false,它都会先执行一次{}再进行判断,该程序的运行结果是一样的,while()do{}则不一样。

首先你要明白do()while()是先执行后判断,你如果输入一个大于小于10的数之后,flag会一直被置为真。。。。所以问题就很明了了