A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 小鲁哥哥 于 2016-8-11 14:14 编辑

【济南中心】JAVA编程阶梯:基础篇之第四章

循环结构
循环语句顾名思义就是当满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复把循环判断执行这个循环体时,需要在合适的时条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。
循环结构的分类
一般我们将循环结构分为三种: for循环,while循环,以及do...while()循环
现在我们分别讲解。

for循环:
格式
  1. for(初始化表达式;条件表达式;循环后的操作表达式) {
  2.             循环体;
  3.         }
复制代码
执行流程
a:执行初始化语句
b:执行判断条件语句,看其返回值是true还是false
         如果是true,就继续执行
        如果是false,就结束循环
c:执行循环体语句;
d:执行循环后的操作表达式
e:回到B继续。
举个栗子
  1. /**
  2. *打印数字0-99
  3. **/
  4. class Demo
  5. {
  6.        public static void main(String[] args){
  7.            for(int x = 0; x < 100; x++){
  8.                  System.out.println("x="+x );
  9.            }
  10.       }
  11. }
复制代码
注意事项
a:判断条件语句无论简单还是复杂结果是boolean类型。
b:循环体语句如果是一条语句,大括号可以省略;如果是多条语句,大括号不能省略。建议永远不要省略。
c:一般来说:有左大括号就没有分号,有分号就没有左大括号

while循环:
格式
  1. while循环的基本格式:
  2.   while(判断条件语句) {
  3.   循环体语句;
  4.   }
  5. 完整格式:
  6. 初始化语句;
  7.   while(判断条件语句) {
  8.   循环体语句;
  9.   控制条件语句;
  10. }
复制代码
执行流程
a:执行初始化语句z
b:执行判断条件语句,看其返回值是true还是false
       如果是true,就继续执行
       如果是false,就结束循环
c:执行循环体语句;
d:执行控制条件语句
e:回到B继续。
举个栗子

  1. /**
  2. * 求1-10的和
  3. */
  4. public class Demo {
  5. public static void main(String[] args) {
  6.                 int x = 0, sum = 0;
  7.                 while (x < 11) {
  8.                         sum += x;
  9.                         x++;
  10.                 }
  11.                 System.out.println(sum);
  12.         }
  13. }
复制代码

do...while循环格式
  1.      do {
  2.             循环体语句;
  3.         }while(判断条件语句);
  4.         
  5.           完整格式;
  6.           初始化语句;
  7.      do {
  8.            循环体语句;
  9.            控制条件语句;
  10.         }while(判断条件语句);
复制代码
执行流程
     a:执行初始化语句
     b:执行循环体语句;
     c:执行控制条件语句
     d:执行判断条件语句,看其返回值是true还是false
        如果是true,就继续执行
         如果是false,就结束循环
     e:回到b继续。

举个栗子
  1. /**
  2. * 打印1-10;
  3. */
  4. class Demo {
  5.         public static void main(String[] args) {
  6.                 int x = 1;
  7.                 do {
  8.                         System.out.println("x=" + x);
  9.                         x++;
  10.                 } while (x <= 10);
  11.         }
  12. }
复制代码
循环结构三种循环语句的区别
三种循环语句其实都可以完成一样的功能,也就是说可以等价转换,但还是有小区别的:
do…while循环至少会执行一次循环体。
for循环和while循环只有在条件成立的时候才会去执行循环体
注意事项:
写程序优先考虑for循环,再考虑while循环,最后考虑do…while循环。
如下代码是死循环

  1. while(true){}
  2. for(;;){}
复制代码
for循环和while循环的区别for循环语句和while循环语句可以等价转换,但还是有些小区别的
使用区别:
控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继续使用,如果你想继续使用,就用while,否则推荐使用for。原因是for循环结束,该变量就从内存中消失,能够提高内存的使用效率。
场景区别:
for循环适合针对一个范围判断进行操作
while循环适合判断次数不明确操作

循环嵌套
循环嵌套,顾名思义就是循环嵌套循环直接举两个小栗子让大家理解一下
栗子一:

  1. /**
  2.     输出如下图形:
  3.          *
  4.          **
  5.          ***
  6.          ****
  7.          *****
  8. */
  9. class Demo
  10. {
  11.        public static void main(String[] args){
  12.             for(int x = 1; x <= 5; x++){
  13.                   for(int y = 1; y <= x; y++){
  14.                       System.out.print("*" );
  15.                   }
  16.                   System.out.println();
  17.             }
  18.       }
  19. }
复制代码
栗子二:
  1. /**
  2. * 需求:打印出99乘法表
  3. **/
  4. class Demo {
  5.         public static void main(String[] args) {
  6.                 for (int x = 1; x <= 9; x++) {
  7.                         for (int y = 1; y <= x; y++) {
  8.                                 System.out.print(y + "*" + x + "=" + (x * y) + "\t");
  9.                         }
  10.                         System.out.println();
  11.                 }
  12.         }
  13. }
复制代码
那如果我们想在某个循环到某一步的时候就结束该怎么办呢?Java就提供了break,continue和return来实现循环语句的跳转和中断。
break
    使用场景:只能在switch和循环中,既可以跳出单层循环又可以跳出多层循环
continue
    使用场景 : 只能在循环中,只能退出本次循环
return
return关键字不是为了跳转出循环体,更常用的功能是结束一个方法,也就是退出一个方法。跳转到上层调用的方法


方法概述和格式说明
使用方法的好处
      提高代码的复用性
什么是方法
      完成特定功能的代码块。
格式

  1. 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) {
  2.             方法体语句;
  3.             return 返回值;
  4.         }
复制代码
格式说明
    修饰符:public protected private  static
    返回值类型:就是功能结果的数据类型。
    方法名:符合命名规则即可。方便我们的调用。
    参数:
         实际参数:就是实际参与运算的。
         形式参数;就是方法定义上的,用于接收实际参数的。
     参数类型:就是参数的数据类型
     参数名:就是变量名
     方法体语句:就是完成功能的代码。
     return:结束方法的。
     返回值:就是功能的结果,由return带给调用者。


写方法之前我们明确返回值类型和参数列表
例如:
  1. /**
  2.          *
  3.          **
  4.          ***
  5.          ....
  6.          打印N行星星
  7. */
  8. class Demo {
  9.         public static void main(String[] args) {
  10.                 printStart(6);
  11.         }

  12.         private static void printStart(int b) {
  13.                 for (int x = 1; x <= b; x++) {
  14.                         for (int y = 1; y <= x; y++) {
  15.                                 System.out.print("*");
  16.                         }
  17.                         System.out.println();
  18.                 }
  19.         }
  20. }
复制代码

方法的注意事项
    a:方法不调用不执行
    b:方法与方法是平级关系,不能嵌套定义
    c:方法定义的时候参数之间用逗号隔开
    d:方法调用的时候不用在传递数据类型
    e:如果方法有明确的返回值,一定要有return带回一个值


方法重载概述和基本使用
方法重载概述
    在同一个类中,方法名相同,参数列表不同。与返回值类型无关。
    参数列表不同:
        A:参数个数不同
        B:参数类型不同
        C:参数的顺序不同(算重载,但是在开发中不用)
比较两个数据是否相等。
案例:

  1. /**
  2. *
  3. * 重载方法演示
  4. */
  5. class Demo {
  6.         public static void main(String[] args) {
  7.                 print(1);
  8.                 print(1, 2);
  9.                 print("1", "2");
  10.         }

  11.         public static void print(int a) {
  12.                 System.out.println("a=" + a);
  13.         }

  14.         public static void print(int a, int b) {
  15.                 System.out.println("(a+b)=" + (a + b));
  16.         }

  17.         public static void print(String a, String b) {
  18.                 System.out.println("(a+b)=" + (a + b));
  19.         }
  20. }
复制代码



评分

参与人数 1技术分 +10 黑马币 +10 收起 理由
济南王昭珽 + 10 + 10 很给力!

查看全部评分

42 个回复

倒序浏览
济南王昭珽 来自手机 黑马帝 2016-7-24 23:11:51
沙发
好贴
回复 使用道具 举报
好贴必须顶!!!
回复 使用道具 举报
支持好贴。。
回复 使用道具 举报
已经学过了,复习复习,温故知新
回复 使用道具 举报
挺全的,看了之后又有了点收获
回复 使用道具 举报
深度好贴
回复 使用道具 举报
好帖,好帖
回复 使用道具 举报
昭阳 中级黑马 2016-7-25 14:11:18
9#
棒棒嗲,又学到循环结构了
回复 使用道具 举报
总结的很好,顶
回复 使用道具 举报
顶上去啊...
回复 使用道具 举报
正在自学中。。
回复 使用道具 举报
赞一个 不错
回复 使用道具 举报
赞赞赞赞赞赞赞
回复 使用道具 举报
正在自学中。。
回复 使用道具 举报
赞一个 不错
回复 使用道具 举报
不错,很详细,新手多指教
回复 使用道具 举报
这个绕得很
回复 使用道具 举报
加油!!!!!!
回复 使用道具 举报
一言不合敲代码
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 加入黑马