/*
1.continue与break的特殊用法。
*/
public static void main(String[] args)
{
//对于循环,可以标识名字,方便中断循环
w:for(int x=0; x<3; x++)
{
for(int y=0; y<4; y++)
{
System.out.println("x="+x); //打印:0
break w; //结束的是外层循环
}
}
//continue:只能作用于循环结构。继续循环。特点:结束本次循环,继续下一次循环。
for(int x=1; x<=10; x++)
{
if(x%2==1)
continue;
System.out.println("x="+x); //打印2,4,6,8,10
}
w:for(int x=0; x<3; x++)
{
for(int y=0; y<4; y++)
{
System.out.println("x="+x); //打印0,1,2
continue w; //继续外层的循环
}
}
}
/*
2. 常量与变量的关系
*/
byte b1=3,b2=4,b;
b = b1 + b2; //编译失败,b1+b2类型自动提升为int型,而b是byte型,故类型不匹配
b = 3 + 4; //编译成功,3+4的结果范围在127范围内。
b += 1; //编译成功,b自动增加1
b = b + 1; //编译失败,b+1后是int型,而b是byte型,故类型不匹配;与b+=1稍有区别
/*
3. 数组的相关知识
*/
int[] x,y[];//x一维,y二维。注意y的数组定义是二维的,定义方式有些奇怪,但是语法是正确的。
int[] x;
int[] y[];
a.x[0] = y;//error
b.y[0] = x;//yes
c.y[0][0] = x;//error
d.x[0][0] = y;//error
e.y[0][0] = x[0];//yes
f.x=y;//error
//数组的基本排序,选择与冒泡排序
/*
选择排序。
内循环结束一次,最值出现头角标位置上。
*/
public static void selectSort(int[] arr)
{
for (int x=0; x<arr.length-1 ; x++)
{
for(int y=x+1; y<arr.length; y++)
{
if(arr[x]>arr[y])
{
int temp = arr[x];
arr[x] = arr[y];
arr[y]= temp;
}
}
}
}
/*
冒泡排序
*/
public static void bubbleSort(int[] arr)
{
for(int x=0; x<arr.length-1; x++)
{
for(int y=0; y<arr.length-x-1; y++)//-x:让每一次比较的元素减少,-1:避免角标越界。
{
if(arr[y]<arr[y+1])
{
int temp = arr[y];
arr[y] = arr[y+1];
arr[y+1] = temp;
}
}
}
}
/*
十进制之间的转换
*/
/*
十进制-->二进制
*/
public static void toBin(int num)
{
trans(num,1,1);
}
/*
十进制-->八进制
*/
public static void toBa(int num)
{
trans(num,7,3);
}
/*
十进制-->十六进制
*/
public static void toHex(int num)
{
trans(num,15,4);
}
public static void trans(int num,int base,int offset)
{
//当要转换的的数字为0时,对应的进制数也为0
if(num==0)
{
System.out.println(0);
return ;
}
char[] chs = {'0','1','2','3'
,'4','5','6','7'
,'8','9','A','B'
,'C','D','E','F'};
char[] arr = new char[32];
int pos = arr.length;
while(num!=0)
{
int temp = num & base;
arr[--pos] = chs[temp];
num = num >>> offset;
}
for(int x=pos; x<arr.length; x++)
{
System.out.print(arr[x]);
}
return ;
}