黑马程序员-JavaSE核心知识-09程序结构

3.9、程序结构(重点)

         程序结构在语言之中一共分为三种:顺序结构、选择结构、循环结构。

3.9.1 、顺序结构

         所有的代码按照先后的顺序依次进行执行,例如,如下代码:

public class Hello {

         public static void main(String args[]) {

                   int x = 2 ;

                   x = x + 2 ;

                   System.out.println(x) ;

         }

}

3.9.2 、分支结构(选择结构)

         就相当于提供了一些条件判断,根据判断的结果来选择执行何种操作,对于分支结构主要操作语法:if、if..else、if..else if…else,这三种结构的完整语法如下:

if语法:

if…else语法:

if…else if…else语法:

if (布尔表达式) {

         条件满足时执行的程序 ;

}

if (布尔表达式) {

         条件满足时执行的程序 ;

} else {

         条件不满足时执行的程序 ;

}

if (布尔表达式1) {

         条件满足时执行的程序 ;

} else if (布尔表达式2) {

         条件满足时执行的程序 ;

} ... else {

         所有条件都不满足时执行的程序 ;

}

范例:if语句

public class Hello {

         public static void main(String args[]) {

                   int age = 16 ;

                   if (age < 18) {

                            System.out.println("少儿不宜观看。") ;

                   }

         }

}

范例:if..else语句

public class Hello {

         public static void main(String args[]) {

                   int age = 26 ;

                   if (age < 18) {

                            System.out.println("少儿不宜观看。") ;

                   } else {

                            System.out.println("青年观看的教育片。") ;

                   }

         }

}

范例:if…else if…else操作

public class Hello {

         public static void main(String args[]) {

                   int age = 260 ;

                   if (age <= 18) {

                            System.out.println("您属于青少年。") ;

                   } else if (age > 18 && age <= 50) {

                            System.out.println("您属于青状年。") ;

                   } else if (age > 50 && age <250) {

                            System.out.println("您属于老年。") ;

                   } else {

                            System.out.println("妖怪,您不是人。") ;

                   }

         }

}

         但是对于多条件判断使用if..else if…else是可以判断布尔条件的,如果是多数值判断,可以通过switch完成,语法:

switch (判断值) {

         case 数值1:

                   满足此数值时执行的语句 ;

                   [break ;]

         case 数值2:

                   满足此数值时执行的语句 ;

                   [break ;]

         case 数值3:

                   满足此数值时执行的语句 ;

                   [break ;]

                   ...

         default:

                   所有条件都不满足时执行的语句 ;

                   [break ;]

}

         对于switch操作,在最早主要使用的是整型或者是字符来完成。

public class Hello {

         public static void main(String args[]) {

                   int ch = 0 ;

                   switch(ch) {

                            case 0 :

                                     System.out.println("数值是0。") ;

                                     break ;

                            case 1 :

                                     System.out.println("数值是1。") ;

                                     break ;

                            case 2 :

                                     System.out.println("数值是2。") ;

                                     break ;

                            default :

                                     System.out.println("没有条件满足。") ;

                                     break ;

                   }

         }

}

         但是对于switch随着版本的不同,也有所更改,JDK 1.5之后也可以利用枚举作为判断条件,而JDK 1.7之后,switch里面也可以判断字符串了(String),这个可以理解为JDK 1.7才支持的新功能。

public class Hello {

         public static void main(String args[]) {

                   String str = "two" ;

                   switch(str) {

                            case "one" :

                                     System.out.println("壹") ;

                                     break ;

                            case "two" :

                                     System.out.println("贰") ;

                                     break ;

                            case "three" :

                                     System.out.println("叁") ;

                                     break ;

                            default :

                                     System.out.println("没有") ;

                                     break ;

                   }

         }

}

3.9.3 、循环结构

         循环的概念主要指的是某一块代码可以被重复执行多次。而循环的操作,分为两种语法:while循环、for循环。

1   while循环:

do…while98%不会看见使用):

while(布尔表达式)

do {

         循环体 ;

         循环条件修改 ;

} while (循环判断) ;

while (循环判断) {

         循环体 ;

         循环条件修改 ;

}

         通过这样的语法就可以发现,实际上do..while表示先执行后判断,而while循环表示先判断后执行,如果循环条件都不满足的情况下,do..while至少执行一次,而while一次都不会执行。

         通过以上给出的两个格式,应该可以发现出循环结构的特点:

                   · 循环的结束判断;

                   · 每次循环体执行的时候,循环条件要求修改。

范例:使用while两种循环实现1 ~ 100的累加

do…while

while(布尔表达式)

public class Hello {

         public static void main(String args[]) {

                   int sum = 0 ;        // 保存累加的结果

                   int x = 1 ;   // 进行结束的判断

                   do {

                            sum += x ; // 累加

                            x ++ ;         // x自增长

                   } while (x <= 100) ;     // 满足则继续执行

                   System.out.println(sum) ;

         }

}

public class Hello {

         public static void main(String args[]) {

                   int sum = 0 ;        // 保存累加的结果

                   int x = 1 ;   // 进行结束的判断

                   while (x <= 100) {

                            sum += x ; // 累加

                            x ++ ;         // x自增长

                   }

                   System.out.println(sum) ;

         }

}

2   for循环:

         for循环的最大特点是已经明确的知道了循环次数,for循环的语法如下:

for (循环的初始值 ; 循环的判断条件 ; 循环条件的修改) {

         循环体 ;

}

范例:实现1 ~ 100的累加

推荐作法:

不推荐作法:

public class Hello {

         public static void main(String args[]) {

                   int sum = 0 ;        // 保存累加的结果

                   for (int x = 1 ; x <= 100 ; x ++) {

                            sum += x ;

                   }

                   System.out.println(sum) ;

         }

}

public class Hello {

         public static void main(String args[]) {

                   int sum = 0 ;        // 保存累加的结果

                   int x = 1 ;  // 初始值

                   for ( ; x <= 100 ; ) {

                            sum += x ;

                            x ++ ;         // 循环条件修改

                   }

                   System.out.println(sum) ;

         }

}

         个人总结,关于循环的出现情况:

                   · while循环:在不确定循环次数,但是确定循环结束条件的情况下使用;

                   · for循环:确定循环次数的情况下使用。

         对于循环而言,也可以进行循环的嵌套操作。

范例:输出一个乘法口诀表,需要两层循环

public class Hello {

         public static void main(String args[]) {

                   for (int x = 1 ; x <= 9 ; x ++) {       // 控制循环行

                            for (int y = 1; y <= x ; y ++ ) {

                                     System.out.print(x + "*" + y + "=" + x * y + "\t") ;

                            }

                            System.out.println() ;    // 换行

                   }

         }

}

范例:打印三角型

      

public class Hello {

         public static void main(String args[]) {

                   int line = 9 ;         // 打印9行

                   for (int x = 0 ; x < 9 ; x ++) {         // 循环次数,控制行

                            for (int y = 0 ; y < line - x ; y ++) {

                                     System.out.print(" ") ;

                            }

                            for (int y = 0 ; y <= x ; y ++) {

                                     System.out.print("* ") ;

                            }

                            System.out.println() ;

                   }

         }

}

         循环操作的基本功能就是重复执行一段代码,但是以上的循环操作,只是作为学习过程之中的程序,循环基本的逻辑结构,实际之中意义不大。

posted @ 2013-03-30 10:56  谷文仁  阅读(176)  评论(0编辑  收藏  举报