您的位置:首页 > 其它

基础整理02

2015-05-22 17:10 10 查看
一: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];
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: