5-2-2 遍历数组-线性搜索-for-each循环
来源:互联网 发布:我的知鸟怎么没有首页 编辑:程序博客网 时间:2024/06/04 20:29
在一堆数中找到某存在的数
是否存在并指出位置(老师的):
import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int[] data = {3,2,5,7,4,9,11,34,12,28}; int x = in.nextInt(); int loc = -1; for ( int i = 0; i < data.length; i++) { if (x == data[i]) { loc = i ; break; } } if ( loc > -1 ) {// (loc+1)使+不做字符串链接,做加法运算 System.out.println(x+"是第"+ (loc+1)+"个"); } else { System.out.println(x+"不在其中"); } }}
留意:
1.这样比自己写的多一个提示是第几个的功能
int loc = -1;
loc = i ;
if ( loc > -1 )
// (loc+1)使+不做字符串链接,做加法运算 System.out.println(x+"是第"+ (loc+1)+"个");
线性搜索缺点:
3.效率不高,以后再讲
4.遍历数组通常使用for循环,i是最大有效下标
for ( int i = 0; i < data.length; i++) { if (x == data[i]) { loc = i ; break; }
5.常见错误
1.循环结束条件写成<=数组长度
2.离开循环后用i值做数组元素下标
如果只需要知道是否存在,不需要位置(自己写的):
import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int[] data = {3,2,5,7,4,9,11,34,12,28}; int number = in.nextInt(); boolean a = true; for ( int i = 0; i < data.length; i++) { if (number == data[i]) { System.out.println("存在"); a = false; } } if (a) { System.out.println("不存在"); } }}
个人感悟:
1.想要表达——如果没做.....就做........
boolean a = true;
a = false;
if (a) { }
引入for-each循环——遍历数组的好方法
形式:
for(类型 变量 : 数组 )
{
}
例:对于数组data的每一个元素,循环的每一轮提取出来,变成k
for ( int k : data )
相比较,以前的写法:
<span style="white-space:pre"></span>for ( int i = 0; i < data.length; i++)
老师的程序:
import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int[] data = {3,2,5,7,4,9,11,34,12,28}; int x = in.nextInt(); boolean found = false; // 对于数组data的每一个元素,循环的每一轮提取出来,变成k for ( int k : data ) { if ( k == x) { found = true; break; } } if ( found ) { System.out.println(x+"在其中"); } else { System.out.println(x+"不在其中"); } }}
两种程序不同的地方:
1.能指出第几个的:
int loc = -1; for ( int i = 0; i < data.length; i++) { if (x == data[i]) { loc = i ; break; } } if ( loc > -1 ) {// (loc+1)使+不做字符串链接,做加法运算 System.out.println(x+"是第"+ (loc+1)+"个"); }
boolean found = false; for ( int k : data ) { if ( k == x) { found = true; break; } } if ( found ) { System.out.println(x+"在其中"); }
0 0
- 5-2-2 遍历数组-线性搜索-for-each循环
- for循环2-循环遍历二维数组
- jquery $().each、$.each、for 遍历数组
- for 循环遍历数组
- json数组使用jquery each循环遍历
- 使用each方法代替for遍历数组
- JDK5.0 二维数组for each循环
- JAVA for-each循环与数组
- For-each循环访问多维数组
- for each 和for循环遍历对象的区别
- Java for循环遍历数组
- 三维数组for循环遍历
- for循环正确遍历数组
- Java学习之for-each循环与集合的遍历
- each()方法能使DOM循环结构简洁。each()函数的遍历,each()遍历一维数组、多维数组。
- 联合使用list() each() while循环遍历数组
- for-each遍历Map
- For-Each循环
- 各种GNU、Linux网址
- Python正则表达式指南
- 树莓派学习之初
- 关于该博客的用途
- EncryptHelper加密帮助类
- 5-2-2 遍历数组-线性搜索-for-each循环
- Android Context 上下文 你必须知道的一切
- eXtremeDB shared memory mapping
- VMware workstation11中虚拟机ubuntu14.10与宿主win8.1共享文件夹
- Python编程中的反模式
- sublime text3 安装插件
- C# Cookie的封装类CookieHelper
- P问题、NP问题和NPC问题
- Sqoop1.4.4使用SQL语句形式将MySQL数据库表中数据导入到HDFS中