java基础6-分支语句

来源:互联网 发布:asp.net web数据库控件 编辑:程序博客网 时间:2024/05/22 17:38

         1)语句;

*if+else组合:这个组合可以用if结尾,亦可以用else结尾,解读的方法是if…就…else就…,会出现if…elseif…elseif…else的情况,不管什么情况照样解读就是了。

**每个if/elseif/else后面的执行语句都用“{}”括起来,不论多少句话,当然,一句话时系统默认不用括,稳当起见,都括起来。当有两句执行语句时,如果不用{},则判断完成后默认只会执行第一条语句,而第二句无论如何都会执行。

*for循环语句:

语句格式是“for(表达式1; 表达式2; 表达式3){语句1; 语句2; …;}”,执行方法是:表达式1必须执行→执行表达式2→true的话→执行语句→执行表达式3→回到表达式2→false的话→结束。

*while和do while语句

**While语句格式“while(判断语句){语句1; 语句2; …;}”执行过程:先执行判断语句→true的话执行语句→回到判断语句→直到判断语句为false为止。

**do while语句格式“do {语句1; 语句2; …;} while (判断语句)”与while循环相反,先执行语句,再执行判断语句,当判断语句为true时再返回执行语句,直到判断语句为false循环解释,也就是说do while循环里的语句无论如何都会被执行一次,而while循环就不一定了,但实际当中do while循环很少用。

 

         2)if语句的执行语句后面不要随便加“;”,如int i =5; if(i == 5) break; 和int i =5; if(i == 5); break;  两句话的意思完全不同,前者是如果int i 的值是5,则执行下面的break语句,而后面一句的意思是不管int i 是否等于5,这个if语句都结束了,然后break语句无论如何都会被执行。

 

         3)

*break语句,用于与其他语句组成语句块一起执行,用于循环时,当执行break语句,循环强行退出。

*continue语句,他的意思是,当执行continue;时,跳过一次它后面的语句,直接回到循环的判断语句中。如:

 int i = 4; for(int a = 1; a < 5; a++){         if(a == i){                   continue;                   语句1;         }         语句2; }

上面程序的意思是,当a=i时,会执行cuntinue;语句,则会跳过语句1和语句2直接执行a++。

 

         4)看程序时,每个语句有它固定的表达式,不论多复杂,都要清晰它最基本的表达式框架,做运算是从里到外的算,而看程序语句则是从外到里。看总的语句骨架要找:

(){   XXX;}

这两个括号就是语句的总骨架。

 

       5)

for(int i = 101; i < 200; i += 2){    boolean f = true;     for( int j = 2; j < i; j++){               if(i % j = 0) {                       f = false;                       break;                }       }       if (!f) { continue;}       System.out.println(“ ”+ i);}

分析程序:这个程序是输出101~200内的质数,质数是只能被1或自身整除的数,这里有两个for,一个if语句,看语句的开头和“}”就知道第一个for的范围是1到11句,它的语句是1到11句的所有,由2句开始看,2句声明了一个变量f = true,对应的是9句,if(not f )就继续,意思是如果程序执行到9句,判断语句是false的话,就执行continue;跳过10句,如果此时看不懂,看第二个for循环,3到7句是第二个for循环,意思是让进来的i = 101%j = 2(求余数),如果除得尽,证明不是质数,将f变为false,并break掉第二个循环,如果都除不尽,则f还是初始的true,然后就会执行9句的if语句,但不会执行continue语句,最后把i的值打印出来。然后继续进行第一个for循环的判断语句。

**这里的两个for循环,第一个for循环是选数进入第二个for循环的,第二个for循环才是真正判断是不是质数的关键循环,是的话就可以指向下面的语句打印出第一个for循环选出来的数,不是的话就break掉第二个for循环回到第一个for循环继续选一个数。

**当某个循环中有break语句,且执行这个break语句后,会break掉整个循环,并且只break掉当前循环。

**例中2句只作声明,假设f = true,2句和9句是同一级别的语句,9句的(!f)的f就是2句的f,知道第二个循环中不改变f的初始值,那么continue语句就不会执行,也就不会打印出第一个循环选出来的数,而如果第二个循环只要有一次改变了f的值,就会break掉整个第二循环,也就会执行下面的if语句的continue语句,也就不会打印出第一个循环选进来的数。

**看循环还是要把同一级别的语句理清,同一对大括号内的两个f变量是同一个变量,不要与大括号外的变量扯上关系,这就是作用域。

**当循环内用循环,要等里面的小循环完毕后才能往下走。

 

         6)switch语句(举例说明):

1  int i = 8; ``````````````````````````````````输入一个int i = 8的值。          

2  switch (i) {```````````````````````````````switch是探测的意思,探测i是什么值。

3  case 8:    ````````````````````````````````如果探测到i是8。

4  System.out.println(“A”);  `````````则输出“A”。

5  break;`````````````````````````````````````并break;

6  case 9: ``````````````````````````````````如果探测到是9.

 7  System.out.println(“B”);```````````则输入“B”。

8  break;`````````````````````````````````````并break;

9  default:```````````````````````````````````如果都不是。

10  System.out.println(“error”);``````则输入“error”。

11 }

有几点要注意的:

*case穿透:意思是如果5句中没有break,那么会打印出4、7、10句的内容,所以一般case和break连用。

*多个case语句可以一起写,如三句中写成case 8:case 9:这样的话探测到8或9都会打印出“A”,

*default可省略,但写上可以让程序更健壮,所以新手必写。

*java的switch语句只能探测到int值,但byte/short/char都能,因为会自动转换为int,不受影响。

0 0
原创粉丝点击