这段代码的boolean类型用法不是很清楚,能请教一下吗?

在控制台输入一个数,判断它是否在给定的数组中,代码如下:
import java.util.Scanner;

public class Caicaikan2 {
public static void main(String[] args) {
 int a[]={123,101,92,68};
 Scanner s=new Scanner(System.in);
 System.out.println("请输入一个数字");
 int num=s.nextInt();
 boolean flag=true;
 for (int i = 0; i < a.length; i++) {
  if(num==a[i])
  {
   System.out.println("猜对啦!数字为:"+num);
   flag=false;
   break;
  }
 }
 if(flag)
  System.out.println("-_-。sorry!猜错啦!");
}
}


1、请告诉我,boolean flag=true在整个代码中的作用
2、在for循环中,当flag=false时循环结束,输出“num在数组中”这一结果。那为什么在循环外if(flag)时,flag=true,输出的却是“num不在数组中”


qq_自由之翼_3
浏览 1821回答 1
1回答

HansonQ

这个很好理解,你在上面定义了一个标志,当你输入的和数组里面存在的才会走到for循环里面的判断语句。而且当相同的时候for循环会终止此时还会把flag的值变成flase,这样的话你for循环外面的if语句是不会走的。if语句后面的表达式只有为true的时候才会执行里面的内容。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java