zoukankan      html  css  js  c++  java
  • 学习笔记之for循环if循环小练习

    /*在这五个数字的后面加上任意数字*/

     1 var a =[7,12,16,20,25];
     2 var b =prompt(); //定义想再加的数为b,这样就可以在前端输入任意一个数字*/
     4 for(i=0;i<a.length;i++)
     5 {
     6 if(a[i]==b)  /*之前一直想的是当b不等于a中的任意数,其实也可以当b等于a中数时跳出*/
     7 {
     8  break;
     9 }
    10 if(i=a.length-1)  /*长度是指这里有几个数就是几个长度,这里是5个长度;i表示的是位置,位置是从0开始数起,所以 若想让i到25这个数的位置,则i=4,与长度的关系为:长度-1*/
    11 {
    12 a[i+1]=b; 
    13 }
    14 }
    15 alert(a);

    /*冒泡排序:按照从小到大的顺序排列9,8,7,6,5,4,3,2,1*/

     1 var a=[9,8,7,6,5,4,3,2,1];//把数组定义上
     2 var b=0;   //定义一个中间值,赋予它任意数值都行,因为他会被替代掉。
     3 for(i=0;i<a.length-1;i++)//这里的i代表的是纵向对比循环的次数,第一个数9与第二个数8比,8与7比,依次比到最后,一共 
     4                           //比7次,长度是9,所以小于长度减去1是循环7次。
     5 {for(l=0;l<a.length-1;l++)  //外围是纵向比,里面是横向比
     6 {
     7 if(a[l]>a[l+1])
     8 {
     9 b=a[l];
    10 a[l]=a[l+1];
    11 a[l+1]=b;
    12 }
    13 }
    14 }
    15 alert(a);
    16 //document.write("<br>");加个空格
    17 //document.write(a);把过程写出来

    /*在一串数组中查找某个值的位置:1,4,5,3,2,7,6,9*/

     1 var a=[1,4,5,3,2,7,6,9];
     2 var b=0;//定义我们想查找的值
     3 for(i=0;i<a.length;i++)
     4 {
     5 if(b==a[i])
     6 {
     7  b=i //当b的值等于a里面的数值时,把i的值赋予给b,就不会再走下面不等于的情况
     8  alert("索引号"+i);
     9 }
    10 else if(b==0)
    11 {
    12     alert("数值不存在!");
    13     break;
    14 }
    15 }

     数组 -- 折半方法查找某个值

    //数组的查找操作
    
    
    class  
    {
    	public static void main(String[] args) 
    	{
    		int[] arr = {3,5,1,2,6,11}
    		int index = getIndex (arr,33);
    		System.out.println("index ="+ index);
    	}
    	//有一个有序的数组,如果想要将一个元素插入到该数组汇总,还要保证该数组
    	//是有序的,如何获取该元素在数组中的位置
    	//答 ,用折半的方式,如果有这个数则插入这个数的位置,如果没有,
    	//则返回最小角标的位置
    
    //折半第二种方式
    poublic static int halfSearch_2 (int[] arr, int key){
    int min = 0 ; max = arr.length- 1; mid;
    	while (min <=max){
    		mid = (max +min) >>1;  //也是/2 的意思
    		if(key > arr[mid]){
    			min = mid  + 1;
    		}else if (key < arr[mid]){
    			max = mid -1;
    		}else 
    			return mid ;
    	}
    	return -1;
    	//如果想要找到插入的位置,就return min ;
    }
    
    //折半查找法,提高效率
    //必须保证这个数组是有序的
    
    	poublic static int halfSearch(int[] arr, int key){
    						//传入一个数组名,传入一个要查找的值
    	//定义数组的三个角标 最小 最大 中间值,用这个来折半查找
    		int min ,max, mid;
    		min = 0 ;
    		max = arr.length- 1;
    		mid = (max +min )/2;
    
    		while (arr[mid] != key){  
    		//当想查找的值不等于中间角标对应的值时,进行判断
    			if (key > arr[mid]){
    	//当key大于中间角标对应的值时, 最小角标变为中间角标+1.这样下一次想查找
    	//的值就会从中间角标后面那个角标值开始查找啦
    				min = mid +1;
    			}else if ( key < arr[mid]){
    				max = mid - 1;}
    				//下面是判断完成后,可以继续循环查找
    				if(min > max){
    					return -1;}
    				mid = (max +min )/2;
    		}
    		return mid;
    	}
    
    	public static int getIndex(int[] arr, int key ){
    		for(int x = 0;x<arr.length; x++){
    		if(arr[x] == key)
    			return x;
    		}
    	return -1;
    	//如果没有找到,则返回-1.用角标-1,表示.因为通常数组角标从0开始
    	//返回-1表示角标不存在,也就是数不存在.也就是没有找到这种情况
    	}
    }
    

      

    /*求3,5,7在数组中出现的次数
    1,4,3,5,9,9,3,2,4,6,2,1,3,5,7,9,0,5,3,5,2,1,5,6,7,8,2,4,6,8,0,5*/

     1 var attr = [1,4,3,5,9,9,3,2,4,6,2,1,3,5,7,9,0,5,3,5,2,1,5,6,7,8,2,4,6,8,0,5,7,4,6,2,6,];
     2 var c3 = 0;
     3 var c5 = 0;
     4 var c7 = 0;//定义数组,定义我们想查的数的次数,给他们一个初始值,可以用switch,也可以用if做
     5 for(var i=0;i<attr.length;i++)
     6 {
     7 switch(attr[i])
     8 {
     9 case 3://这里写条件,代表:如果数值等于3
    10 c3++;//每循环一次,次数加一,所以最后输出c3,c5,c7就行了
    11 break;
    12 case 5:
    13 c5++;
    14 break;
    15 case 7:
    16 c7++;
    17 break;    
    18 }    
    19 }
    20 alert(c3);
    21 alert(c5);
    22 alert(c7);
  • 相关阅读:
    write to logfile
    open and read a file content to a variable
    strategy
    Android 开机启动程序
    消息队列
    卡机音乐功能实现
    Android 2.0 开机动画文件分析
    多线程实例
    消息队列
    多线程实例
  • 原文地址:https://www.cnblogs.com/ziyanxiaozhu/p/7698832.html
Copyright © 2011-2022 走看看