循环

一,循环结构简介

1,什么是循环?--重复做且有一定规律的事情

2, 生活中什么事情像循环?

	a ,体育课罚跑10圈

	b , 切菜切一根黄瓜

3 , 循环的流程是怎么样的,可以通过流程图来绘制。

4,循环执行的次数和补偿有关,列如黄花切厚一点,切的次数就少一点 

  5,没有退出条件的循环是死循环,永远不会结束要   避免 

二,while循环

1,循环组成部分:

	a ,循环变量,用于计数,或者判循环的状态
		  b , 循环体,即循环执行的操作,通常用于大括号包裹
	  c  ,  改变循环变量的值,列如i++

	   d  , 条件,判断循环是否继续

2,while循环的特点:

	a , 先判断,后执行

	b ,  如果第一次判断条件就不成立,则一次都不执行,直接跳出循环
  **3,掌握while循环结构**
// 1.初始化循环变量
xxxxx
// 2.循环条件
while(条件表达式){
    // 3.循环操作(循环体)
    // 4.更新循环变量(循环出口)
}
public class Demo3 {

	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		/*
		 * 循环条件:不合格
		 * 循环操作:执行学习任务
		 */
		// 1.循环的初始值
		String pass = "n";
		// 2.循环条件
		// 如果是基本数据类型比较  可以使用==   但是字符串是个引用数据类型 比较内容相等时 必须使用equals()
		while(pass.equals("n")) {
			// 3.循环操作
			System.out.println("上午阅读教材,学习理论部分");
			System.out.println("下午上机编程,掌握代码部分");
			
			// 4.循环出口
			System.out.print("老师,他合格了吗?(y/n):");
			pass = input.next();
		}
		System.out.println("恭喜合格!");
	}

}

三,调试程序

1,程序编写的过程中可能出错,一般叫bug

2,解决错误的过程叫debug

3,解决错误的方法:

a , 目测代码哪里有错

b , 查看报错信息

c , 调试程序,即一点点一步步来执行,仔细检查程序哪里不对

4 ,return结束程序 结束当前的方法,返回到方法的调用者处。

5 ,break中断:switch中见过 可以结束掉某个case

表示终止循环,但是如果是出现在内层循环中,它只是结束了当前循环,外层的没有影响。
for(int i = 0 ;i < 10; i++){
    for(int j = 0; j < 10; j++){
        syso("*");
        if(j == 3){
            break;
        }
    }
}

6 ,continue 继续:表示结束掉本次循环,进入下一次循环。

4,调试的过程:

	a , 在可能出bug的地方前面几行代码设置断点(breakpoint)

	b , 然后调试执行

	c  ,  单步执行f6快捷键

	d  ,  在查看窗口查看变量值的改变

	e  ,   找到bug,修改程序, 删除断点,关闭调试窗口结束调试
3. 掌握程序的调试(debug)(你的谋生技能)

断点调试:因为程序执行很快,一晃而过 所以我需要让它在我需要查看的位置停下来慢慢执行。

**断点调试步骤:**(未来更多的使用步骤 请见上课老师)

  1. 打断点 break point(双击左侧的竖栏 注意:是在方法中非注释的位置打 )

  2. 以debug as运行 (当运行到断点处时,程序会中断,在断点处等待你调试)

    这一行被选中的代码,它处于将要执行,还未执行的状态。

    此种执行方法 会触发切换debug视图对话框

  3. 按F6或者按Step over键 可以执行当前暂停的这一行代码

    如果想看一些判断的结果,可以选中你想判断的地方,然后右键->inspect查看

  4. 在一行一行执行的过程中,可以随时在debug视图查看变量表 监测变量的变化,或者直接鼠标放在变量上,查看变量的值。

  5. 在查看代码执行过程中,如果有些代码已经清楚执行结果之后,想看关键点,那么可以直接点击F8或者Resume按钮,快速放行掉非断点代码内容。(它会直接来到下一次的断点位置 中间直接快速执行了)

四,do—while循环

    1,while循环时间先判断,后执行,但有时候不是我们需要先执行,根据结果在判断

     2,先执行后判断的就是do--while循环
    			 do{
   				 // 循环操作
			}while(循环条件);

 3,常见错误:

		a , 循环变量的值为初始化

		b  ,  while后面的分号是必须的

   4 , while循环和do--while循环的异同

		a , 相同点:都是循环,都可以完成循环操作

		  b , 语法不同

		   c ,  执行顺序不同,while 先判断在执行,do--while 是先执行后判断

		   d , 循环次数可能不同。while 有可能一次都不执行,do--while至少执行一次	 

五,for循环的使用

  1,对于固定次数的循环,使用for循环更加简洁明了

   2,for 循环语法

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

	循环体

     }

3,可能未来我们会使用到死循环

// 死循环
/*for(;;) {
	System.out.println("xxxxxxxxxxxxx");
  }*/
		
while(true) {
	System.out.println("xxx");
}
,4,通过调试执行,一步步看循环的执行流程,注意吧for括号里面的内容折行  

六,for循环的注意事项

      1,初始化部分有且执行执行一次,最先执行

   2,i++用于修改循环变量值,步长可以改变,列如:i+=3

     3,在for循环中声明的变量不能在循环外部使用

     4,循环结束后,循环变量的值到底是多少?

       5,循环条件i<6和i<=6有区别吗

      6,for循环括号里面的三个部分都可以省略不写,但是分号不能省略

      7,eclipse中快捷键和快捷键输入的使用

		a  ,  默认快捷键是alt+/

		  b  ,  syso

		  c  , main 

如何正确的用for循环来遍历数组。

  我们先看一下for循环的定义。

  for( 初始语句  ; 执行条件  ; 增量 )
   {
     循环体
   }
    执行顺序:1、初始语句  2、执行条件是否符合?  3、循环体  4、增加增量 
   初始化语句只在循环开始前执行一次,每次执行循环体时要先判断是否符合条件,如果循环条件还为true,则执行循环体,再执行迭代语句。对于for循环,循环条件总比循环体多执行一次。

   明白了for循环的定义后,我们可以很好的来写for循环如何遍历数组了。

   针对上面的代码我们应该修改如下:

   for(int i=0;i<examPart.length;i++) {

       if (examPart[i]==0) then continue;

       循环体

   }

  更简洁一下可以修改如下:

  for (int i : examPart) {   
         if (i==0) then continue;

        循环体
     }
Java for循环遍历数组

int[]a=new int[]{1,2,5,77};
for(int value:a){
System.out.println(value);
}

七,跳转语句break的使用

   1,break语句可以用在for,while ,do--while中

2,break语句

	a , 用于终止某个循环,使程序到循环体外的下一个语句

	 b , 在循环中位于break厚度语句将不再执行,循环也停止执行

	   c , 通常与if语句联用

八,跳转语句continue的使用

1,continue语句可以用在for, while ,do--while 

  2,  continue语句

	a , 跳过本次循环,继续执行下一次循环

	 b , 通常与if 语句连用
九. 掌握Java二重循环(多重/嵌套)

注意:

 1.二重循环其实就是嵌套循环,在一个循环里面又嵌套了一个循环

2.外层循环控制行   内层循环控制列(每行打印的内容)

 3.外层循环执行一次  内层循环执行一遍 ,整体循环执行的总次数,是外层循环的次数乘以内层循环的次数

   4.一般多重循环值的就是二重循环
十.增强for循环

遍历集合或数组是平时操作很常用的,之前也没有真正的总结过,如今整理了一下,加上以往使用上的借鉴整理如下,如有写的不完善的地方请指正,谢谢!

整体来说:

增强型for循环使用起来比较方便,代码也比较简单,如果只是操作集合中元素的而不使用索引的话,建议用此方法。

对于普通for循环,如果需要使用索引进行其它操作的话,建议用这个。

详细来说:

1,区别:

增强for循环必须有被遍历的目标(如集合或数组)。

普通for循环遍历数组的时候需要索引。

增强for循环不能获取下标,所以遍历数组时最好使用普通for循环。

2,特点:

书写简洁。

对集合进行遍历,只能获取集合元素,不能对集合进行操作,类似迭代器的简写形式,但是迭代器可以对元素进行remove操作(ListIterator可以进行增删改查的操作)。

3,格式:

for(数据类型变量名 :被遍历的集合(collection)或者数组) {

执行语句

}

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class ForTest {

        public static void main(String[] args) {
                // TODO Auto-generated method stub
                /* 1.普通数组中的使用 */  
        int array[] = { 1,2,3,4,5,6,7,8,9};  
  
        // 增强for循环  
        for (int item : array) {  
            System.out.println(item);  
        }  
  
        // 普通for循环
        for (int i = 0; i < array.length; i++)  
            System.out.println(array[i]);  
  
        /* 2.二维数组中的使用 */  
        int array2[][] = {{1,2,3}, {4,5,6}, {7,8,9} };  
          
        // 增强for循环  
        for (int arr[] : array2) {  
            for (int item : arr) {  
                System.out.println(item);  
            }  
        }  
  
        // 普通for循环  
        for (int i = 0; i < array2.length; i++) {  
            for (int j = 0; j < array2[i].length; j++) {  
                System.out.println(array2[i][j]);  
            }  
        }  
  
        /* 3.List中的使用 */  
        List<String> list = new ArrayList<String>();  
        list.add("我");  
        list.add("爱");  
        list.add("中");  
        list.add("国"); 
          
        // 增强for循环  
        for (String item : list){  
            System.out.println(item);             
        }  
                  
        //普通for循环
        for (int i = 0; i < list.size(); i++) {  
            System.out.println(list.get(i));  
        }  
  
        //迭代器遍历  
        Iterator<String> it = list.iterator();
        while (it.hasNext()) {  
            System.out.println(it.next());  
        }  
        }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值