for循环
for语句的语法格式是:
for (初始语句;逻辑表达式;迭代语句)
语句; //循环体
初始语句和迭代语句中可以含有多个语句,各语句间以逗号相隔。for语句括号内的三部分是可选的,逻辑表达式为空时,默认规定为恒真。
例1.运用for语句,输出九九乘法表
package 实验;
public class for循环 {
public static void main(String[] args) {
//九九乘法表
for(int i=1;i<=9;i++) {
for(int j=1;j<=i;j++) {
System.out.print(j+"*"+i+"="+j*i+" "); }
System.out.println();
}
}
}
多维数组
1.对于一维数组,这里就不多说了,以二维数组为主。
二维数组的定义格式如下:
1.type arrayName[][];
2.type[][]arrayName;
与一维数组一样,定义时对数组元素也没有分配内存空间,同样要使用运算符new来分配内存,然后才可以访问每个元素。
2.由于矩阵数组是最长见的格式,所以java提供了创建矩阵数组的简化方式。二维矩阵数组的一般说明格式为:
type arrayName[][]=new type[length1][length2];
arrayName是数组名,length1和length2分别为数组各维的大小,type是数组元素的类型。
例2.实现数组的遍历
*(每一种遍历方式我用了两种方法for和foreach) *
一维数组
package 实验;
public class array {
public static void main(String[] args) {
// 一维数组
int arr1[]= {1,2,3};
int arr2[];
arr2=new int[4];
arr2[0]=10;
arr2[1]=20;
arr2[2]=30;
arr2[3]=40;
for(int i=0;i<arr2.length;i++) {
System.out.println(arr2[i]);
}
System.out.println("=========");
//foreach语句
for(int x:arr1) {
System.out.println(x);}
}
}
运行结果如下:
二维数组:
package 实验;
public class 二维数组 {
public static void main(String[] args) {
// 实现二维数组的遍历
int list1[][]= {{1,2,3},{4,5,6}};
int list2[][]=new int [3][4];
for(int i=0;i<list1.length;i++) {
for(int j=0;j<list1[i].length;j++) {
System.out.println(list1[i][j]);
}
}
//foreach语句
System.out.println("=========");
for(int arr[]:list1) {
for(int x:arr)
{
System.out.println(x);
}
}
}
}
执行结果如下:
例3.定义等长的一维数组,进行值的互换(引入中间变量)
package 实验;
public class 值的互换 {
public static void main(String[] args) {
// 定义两个等长的一维数组,进行值的互换
System.out.println("==============");
int li1[]= {1,2,3,4};
int li2[]= {5,6,7,8};
int temp=0;
for(int i=0;i<li1.length;i++) {
//引入中间变量
temp=li1[i];
li1[i]=li2[i];
li2[i]=temp;
System.out.println(li1[i]);
}
}
}
定义等长的一维数组,进行值的互换(简单代数运算)
package 实验;
public class 值的互换2 {
public static void main(String[] args) {
// 简单代数运算 只适用于数值型
int li1[]= {1,2,3,4};
int li2[]= {5,6,7,8};
for(int i=0;i<li1.length;i++) {
li1[i]=li1[i]+li2[i];
li2[i]=li1[i]-li2[i];
li1[i]=li1[i]-li2[i];
System.out.println(li1[i]);}
}
}
定义等长的一维数组,进行值的互换(位运算)
package 实验;
public class 值的互换3 {
public static void main(String[] args) {
// 简单代数运算 只适用于数值型
int li1[]= {1,2,3,4};
int li2[]= {5,6,7,8};
for(int i=0;i<li1.length;i++) {
li1[i]=li1[i]^li2[i];
li2[i]=li1[i]^li2[i];
li1[i]=li1[i]^li2[i];
System.out.println(li1[i]); }
}
}
例4.实现冒泡排序法
package 实验;
public class 冒泡排序法 {
public static void main(String[] args) {
// 冒泡排序法
int listarr[]= {12,54,35,91,55,49,78,83};
for(int i=0;i<listarr.length;i++) {
for(int j=0;j<listarr.length-1;j++) {
if(listarr[i]<listarr[j]) {
listarr[i]=listarr[i]^listarr[j];
listarr[j]=listarr[i]^listarr[j];
listarr[i]=listarr[i]^listarr[j];
}
}
}
for(int x:listarr) {
System.out.println(x);}
}
}
-
简单代数运算(只适用于数值型)
-
a=1,b=2;
-
a=a+b; a=3,b=2
-
b=a-b; b=1,a=3
-
a=a-b; a=2,b=1
-
^按位异或(只适用于整形)
-
将数字转换为二进制进行比较,相同为0,不同为1
-
注意java中二进制的表示方式
-
二进制:0b开头
-
八进制:0开头
-
十进制:默认十进制
-
十六进制:0x开头
-
作用:1.是某些特定的位翻转
2.实现两个值的交换,而不必使用临时变量