JAVA学习day07
1、奇数求和练习packagecom.ghy.studyday07; /*要求:计算1-100之间的所有的奇数和1+3+5+7...+99 有1个数据,从0变到100循环int=0<=100++从0-100,范围内,找到奇数数%2==1奇数所有的奇数求和计算需要变量,保存奇数的求和 实现步骤:1.程序可以使用到的数据,预先定义好变量需要求的奇数和2.利用循环,让变量从0变化到1003.判断变量的变化情况是不是奇数4.如果是奇数,和预先定义好的变量,求和*/publicclassLoopTest{publicstaticvoidmain(String[]args){//定义变量,保存求和intsum=0;//for循环,循环中的变量,0-100for(inti=0;i<=100;i++){//对循环的变量,进行奇数的判断,%2==1if(i%2==1){//对奇数求和sum+=i;}}System.out.println(sum); //sum=0; /*for(inti=1;i<=100;i+=2){sum+=i;}System.out.println(sum);*/}} 2、计算出水仙花数即 3位数本身 = 百位数立方 + 十位数立方 + 个位数立方三位数100-999个位数的立方+十位数的立方+百位数的立方=自己本身153=111+555+333已知三位数123获取出每个数位利用除法,取模运算 实现步骤:1.定义变量才存储三个数位上的整数2.利用循环,循环中的变量,从100变化到9993.循环中得到三位数,利用算法,拆解成三个单独数位4.将三个数位立方的求和计算,计算后的求和,和他自己进行比较判断相同,就是水仙花publicclassLoopTest_1{publicstaticvoidmain(String[]args){//定义三个变量intbai=0;intshi=0;intge=0; //循环,循环变量从100-999for(inti=100;i<1000;i++){//对i,进行计算,获取出三个数位//获取百位bai=i/100;//获取十位shi=i/10%10;//获取个位ge=i%10;//对三个数位进行立方求和if(baibaibai+shishishi+gegege==i){System.out.println(i);}}}} 3、ASCII编码表数字0-9对应ASCII编码十进制为48-57, 字母a-z对应ASCII编码十进制为97-122,字母A-Z对应ASCII编码十进制为65-90 4、利用for循环打印字母表 /*利用循环,输出字母包含大写小写,52个输出A-Za-z利用编码表实现,字母和数字的对应关系A-Z65-90a-z97-122 实现步骤:1.定义变量,保存小写a,大写A2.循环26次,输出定义好的变量每次循环,变量++*/publicclassLoopTest_2{publicstaticvoidmain(String[]args){//定义变量,保存2个字母charxiaoXie='a';chardaXie='A';//定义循环,次数26次for(inti=0;i<26;i++){//输出保存字母的变量System.out.println(xiaoXie+""+daXie);daXie++;xiaoXie++;}}} 5、利用for循环打印9*9表for循环的特点: 外循环,行数 内循环,每行的个数 /*利用嵌套for循环,实现99乘法表示实现步骤:1.定义外循环控制行数2.内循环控制个数,个数,每次都在递增3.循环中输出,乘法表的格式1*3=3*/publicclassLoopTest_3{publicstaticvoidmain(String[]args){print99(9);} publicstaticvoidprint99(intn){//定义外循环,循环9次for(inti=1;i<=n;i++){//定义内循环,每次递增,循环条件,<=ifor(intj=1;j<=i;j++){//按照标准格式,输出打印System.out.print(j+""+i+"="+ij+"t");}System.out.println();}}} 6、实现数组的遍历 7、数组的逆序 不等于反向遍历 逆序的实现思想,数组最远端位置的交换 数组的指针思想: 就是数组的索引 指针是可以随时指向数组的任意一个索引的 需要两个指针 一个大指针,一个小指针 大指针=最大索引 小指针=0索引 8、选择排序原理selectSort数组中的每个元素,和其他元素进行比较换位置 元素换位需要借助第三方变量packagecom.ghy.studyday07; /*数组的排序:一般都是升序排列,元素,小到大的排列 两种排序的方式选择排序:数组的每个元素都进行比较冒泡排序:数组中相邻元素进行比较规则:比较大小,位置交换*/publicclassArrayMethodTest_2{publicstaticvoidmain(String[]args){int[]arr={3,1,4,2,56,7,0};//调用选择排序方法//selectSort(arr); //调用冒泡排序方法bubbleSort(arr);printArray(arr);}/*定义方法,实现数组的冒泡排序返回值:没有参数:数组*/publicstaticvoidbubbleSort(int[]arr){for(inti=0;i//每次内循环的比较,从0索引开始,每次都在递减for(intj=0;j//比较的索引,是j和j+1if(arr[j]>arr[j+1]){inttemp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}}} /*定义方法,实现数组的选择排序返回值:没有参数:数组实现步骤:1.嵌套循环实现排序外循环,控制的是一共比较了多少次内循环,控制的是每次比较了多少个元素2.判断元素的大小值小值,存储到小的索引*/publicstaticvoidselectSort(int[]arr){for(inti=0;i//内循环,是每次都在减少,修改变量的定义for(intj=i+1;j//数组的元素进行判断if(arr[i]>arr[j]){//数组的换位inttemp=arr[i];arr[i]=arr[j];arr[j]=temp;}}}} /*定义方法,实现功能返回值:void方法参数:数组*/publicstaticvoidprintArray(int[]arr){//输出一半中括号,不要换行打印System.out.print("[");//数组进行遍历for(inti=0;i//判断遍历到的元素,是不是数组的最后一个元素//如何判断循环变量到达length-1if(i==arr.length-1){//输出数组的元素和]System.out.print(arr[i]+"]");}else{//不是数组的最后一个元素,输出数组元素和逗号System.out.print(arr[i]+",");}}System.out.println();}} 9、冒泡排序功能数组的相邻元素换位置1.嵌套循环实现排序外循环,控制的是一共比较了多少次内循环,控制的是每次比较了多少个元素10、数组的折半查找前提:被查找的数组中的元素,必须有序排列