基础整理02

一:while

package study.base.day003;
import java.util.Scanner;
/**
顺序结构 、选择结构、循环结构
 * 第三种结构:循环结构
 * 代表语句:
 * while
 * doWhile
 * for
 *
 * while语句格式:
 * while(条件表达式){
 * 		满足条件则无限循环。
 * }
 *
 * do while语句格式:
 * do{
 * 		执行语句。
 * }while(条件表达式);
 *
 * for(){
 * 	
 * }
 */
public class Day031while {
	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		System.out.println("输入一个整数,如果大于5小于等于13,循环输出。");
		System.out.println("请输入:");
		int i;
		i = s.nextInt();
		while(i>5){
			System.out.println("呵呵哒。");
			i++;
			if(i>13){
				break;
			}
		}
	}
}

控制台输出结果:

 

二:doWhile

package study.base.day003;
import java.util.Scanner;
public class Day032doWhile {
	//do while	先执行循环体,在判断
	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		System.out.println("输入一个整数,先执行do循环在判断。");
		System.out.println("请输入:");
		int i;
		i = s.nextInt();
		do{
			System.out.println("呵呵哒");
			i++;
			if(i>8){
				break;
			}
		}while(i>5);
	}
}

控制台输出结果:

 

三:for循环

package study.base.day003;
import java.util.Scanner;
public class Day033for {
	//for循环与while的区别
	//for循环是结束后,定义在for作用域里面的变量,会在内存中被释放
	//所以,如果需要定义临时的循环变量,for循环更加合适
	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		System.out.println("输入一个整数,再进入for循环。");
		System.out.print("请输入:");
		int y = s.nextInt();
		for(int i = 0;i<y;i++){
			for(int k = 0;k<i;k++){
				System.out.print("*");
			}
			System.out.print("\n");
		}
	}
}

控制台输出打印结果:

 

for 循环的扩展:

1) for(;;){System.out.println("d");}//什么条件都没写,为true。则自动无限循环

2)//获取1-10的和,并打印

int i;
		int sum = 0;
		for(i=1;i<11;i++){
			sum += i; 
		}
		System.out.println("1-10的和为:"+sum);
		//1-50之间7的倍数个数,并打印。
		//原理,通过变量记录住循环操作的结果。 
		int s = 0;
		int count = 1;
		for(int a=1 ;a<=50;a++){
			if(a%7==0){
				s += a;
				count++;
				System.out.print("输出的数是:"+a+"\t");
				System.out.println("当前和:\t"+s);
			}
		}System.out.println("输出的总数是:"+count);

控制台输出打印结果:

 

3)for 循环的嵌套

package study.base.day003;
import java.util.Scanner;
public class Day037TestForInFor {
	//外循环控制行,内循环控制输出的字符
	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		System.out.println("输入一个整数,再进入for循环。");
		System.out.println("请输入:");
		int y = s.nextInt();
		for(int i = 0;i<y;i++){
			for(int k = 0;k<i;k++){
				System.out.print("*");
			}
			System.out.println();
		}
		for(int i1 = 1 ; i1<y;i1++){
			for(int b = 0;b>i1;b++){
				System.out.print("*");
			}
			y--;
		}
		int g = 5;
		for(int e = 0;e<5;e++){
			for(int f = e;f<g;f++){
				System.out.print("*");
			}
			System.out.println();
		}	
	}
}

控制台输出结果:

 

 

(4)乘法表  

package study.base.day003;
import java.util.Scanner;
/**
 * 99乘法表
 */
public class Day038TestFor4ChengFaBiao {
	public static void main(String[] args) {
		int a,b,c,d,sum=1;
		for(a = 1;a<=9;a++){
			for(b = 1;b<=a;b++){
				System.out.print(b+"*"+a+"="+b*a+"\t");
			}
			System.out.println();
		}
		for(c = 9;c>0;c--){
			for(d = 1;d<=c;d++){
				System.out.print(d+"*"+c+"="+d*c+"\t");
			}
			System.out.println();
		}
		//输入一个数,输出乘法表
		int e,f,into;
		Scanner s = new Scanner(System.in);
		into = s.nextInt();
		for(e = 1;e<=into;e++){
			for(f = 1;f<=e;f++){
				System.out.print(f+"*"+e+"="+f*e+"\t");
			}
			System.out.println();
		}
	}
}

控制台输出结果:

 

 

(5)打印三角形

package study.base.day003;
public class Day041TestForTriangle {
	public static void main(String[] args) {
		/**
		 * 	----*
		 * 	---* *
		 *  --* * *
		 *  -* * * * 
		 */
		//step1:确定循环行数,确定换行
		int l = 5;
		for(int a = 0;a<l;a++){		
			//step2:输出倒三角----
			for(int b=(l-1);b>a;b--){
				System.out.print("-");
			}
			//step3:输出*
			for(int c = 0;c<=a;c++){
				System.out.print("*");
				System.out.print(" ");
			}
			System.out.println();
		}
	}
}

控制台输出结果:

 

 

四:break 与 continue

package study.base.day003;
public class Day040break {
	public static void main(String[] args) {
		int i ;
		w:for(i=1 ; i<4;i++){
			System.out.println("x="+i);
			//break;
			n:for(int j = 0;j<i;j++){
				break w;
			}
		}
		System.out.println("xx="+i);
		//continue	只能作用于循环结构。继续循环
		for(int y = 1;y<5;y++){
			if(y%2==1){
				continue;
			}	
			System.out.println("t:"+y);
		}
	}
}

五:function 

package study.base.day003;
public class Day044TestFunction {
	/**
	 * 输入两个数长x,款y。输出矩形
	 * @param args
	 */
	public static void main(String[] args) {
		outJuXing(5,4);
	}
	public static void outJuXing(int x,int y){
		for(int a = 0;a<y;a++){
			for(int b = 0;b<x;b++){
				System.out.print("*");
			}
			System.out.println("");
		}
	}
}

控制台输出结果:

 

六:重载Overload

重写与重载的区别:

重写是子类的方法覆盖父类的方法,要求方法名和参数都相同
重载是在同一个类中的两个或两个以上的方法,拥有相同的方法名,但是参数却不相同,方法体也不相同,最常见的重载的例子就是类的构造函数,可以参考API帮助文档看看类的构造方法。

/**
 * 重载Overload
 */
package study.base.day003;
public class Day045Overload {
	public static void main(String[] args) {
		cfb(4);
	}
	public static void cfb(){
		cfb(9);
	}
	public static void cfb(int num){
		for(int a = 1;a<=num;a++){
			for(int b = 1;b<=a;b++){
				System.out.print(b+"*"+a+"="+b*a+"\t");
			}
			System.out.println();
		}
	}
	int add(int x,int y){return x+y;}
	int add(int x,int y,int z){return x+y+z;}
	double add(double x,double y){return x+y;}
}

七:数组 Array 

/**
 * 数组
 * 堆栈使用
 * 栈内存:变量的数据在方法体里面使用完毕,会自动释放
 * 堆内存:								   使用java的垃圾回收机制,
 * 非手动操作,也不能马上回收
 */
package study.base.day003;
public class Day047Array {
	public static void main(String[] args) {
		//定义一个整形数组
		int[] i = new int[5];
		System.out.println(i.length);
		//定义一个String数组
		String[] s = new String[5];
		String[] s2 = null;
		String sTemp = null;
		int iTemp = 0;
		for(int x = 0;x<i.length;x++){
			i[x] = x;
			System.out.println(i[x]);
			sTemp = i[x]+"";
			s[x] = sTemp;
			System.out.println("xx:"+s[x]);
		}
		System.out.println(s);
	}
	/**
	 * sTemp = i[x]+"";
			s[x] = sTemp;
			System.out.println(s[x]);
	 */
}
public class L048 {
	public static void main(String[] args) {
		int[] arr1 = new int[5];	//int arr[] = new int[5];一样的
		int[] arr2 = new int[]{1,2,3,5,6};//在堆中开辟空间
		//int[] arr2 = {1,2,3,5,6};			//没有
		//遍历输出arr2
		for(int i =0;i<arr2.length;i++){
			System.out.print("\n"+arr2[i]);
		}
		arr1 = null;
		System.out.print("\n"+arr1[10]);
	}
}
package study.base.day004;
public class L049 {
	public static void main(String[] args) {
				int[] arr1 = new int[5];	//int arr[] = new int[5];一样的
				int[] arr2 = new int[]{1,2,3,5,6};//在堆中开辟空间
				//int[] arr2 = {1,2,3,5,6};			//没有
				//遍历输出arr2
				for(int i =0;i<arr2.length;i++){
					System.out.println("arr2["+i+"]="+arr2[i]);
				}
				//arr1 = null;
				//System.out.print("\n"+arr1[10]);
				printlnArray(new int[]{1,2,4,6});
	}
	//定义一个功能,打印数组的元素,用逗号隔开
	public static void printlnArray(int[] arr){
		for(int i = 0;i<arr.length;i++){
			System.out.print(arr[i]+",");
		}
	}
}

控制台输出结果:

 

扩展:冒泡排序

/**
 * 冒泡排序:相邻的两个元素进行比较,如果符合条件则换位。
 */
package study.base.day004;
import java.util.Arrays;
public class L052MaoPaoPaiXu {
	public static void main(String[] args) {
		int[] arrr = {7,1,6,0,4,3,2};
		//printArray(arrr);
		mppx(arrr);
		printArray(arrr);
		//java便捷排序工具
		Arrays.sort(arrr);
		printArray(arrr);
		
	}
	public static void printArray(int[] arr){
		System.out.print("[");
		for(int i = 0;i<arr.length;i++){
			System.out.print(arr[i]+",");
		}
		System.out.print("]");
	}
	public static void mppx(int [] arr){
		for(int x = 0;x<arr.length-1;x++){
			
			for(int y =0;y<arr.length-x-1;y++){		//-x:让每一次比较的元素减少1,-1避免越界
				if(arr[y]>arr[y+1]){
					int iTemp = arr[y];
					arr[y] = arr[y+1];
					arr[y+1] = iTemp;
				}
			}
		}
	}
}

控制台输出结果:

[0,1,2,3,4,6,7,][0,1,2,3,4,6,7,]

数组扩展2:

package study.base.day004;
public class L054ArrayTest4 {
	public static void main(String[] args) {
		int[] arr = {1,2,3,6,4,96,3,6};
		int[] arr2 = {1,6,9,13,20,21};
		//int index = getIndex(arr,0);
		//System.out.println("index的索引是:"+index);
		int iMid = halfSearch(arr2,13);
		System.out.println("index的索引是:"+iMid);
	}
	//定义功能,获取key第一次出现的索引,如果不存在,则返回-1
	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,3,5,6,9,13,20,21}这种有序的数组
	//key为对比的数值
	public static int halfSearch(int[] arr,int key){
		int min,max,mid;
		min = 0;
		max = arr.length-1;
		mid = (min+max)/2;
		while (arr[mid]!=key){
			if(key>arr[mid]){
				min = mid+1;
			}else if(key<arr[mid]){
				max = mid-1;
			}
			mid = (max+min)/2;
		}
		return mid;
	}
}

控制台结果是:

index的索引是:3

八:十进制转换。

package study.base.day004;
public class L055ArrayShiJinZhiZhuanHuan {
	public static void main(String[] args) {
		toBin(6);
		toHex(60);
	}
	/**
	 * 十进制转换---》二进制
	 * @param num
	 */
	public static void toBin(int num){
		StringBuffer sb = new StringBuffer();
		while(num>0){
			System.out.println(num%2);
			sb.append(num%2);
			num = num/2;
		}
		//reberse()方法,用于倒序显示
		System.out.println(sb.reverse());
	}
	/**
	 * 十进制转十六进制
	 */
	public static void toHex(int num){
		StringBuffer sb = new StringBuffer();
		for(int x = 0;x<8;x++){
			int temp = num&15;
			if(temp>9){
				//syso+alt+/
				//System.out.println((char)(temp-10+'A'));
				sb.append((char)(temp-10+'A'));
			}else{
				//System.out.println(temp);
				sb.append(temp);
			}
			num = num>>>4;
		}
		System.out.println(sb.reverse());
	}
}

九:二维数组

/**
 * 二维数组
 */
package study.base.day004;
public class L060EWSZ {
	public static void main(String[] args) {
		//定义了一个名称为arr的二位数组,二位数组中有3个一维数组
		//每一个一维数组中有四个元素。
		int [][] arr  =new int[3][4];
	}
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值