for循环
课后练习
public class Main {
public static void main(String[] args) {
double pi = 0;
double M = 1000000000;
int a = 1;
for (double i=1;i<M ;i=i+2) {
// TODO
pi = pi + a/i;
a = -a;
}
System.out.println(pi*4);
}
}
遍历数组
Arrays.toString(ns)快速打印数组内容
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] ns = { 1, 1, 2, 3, 5, 8 };
System.out.println(Arrays.toString(ns));
}
}
数组排序
冒泡算法
package com.itranswarp.learnjava;
import java.util.Arrays;
/**
* 降序排序
*/
public class Main {
public static void main(String[] args) {
int[] ns = { 28, 12, 89, 73, 65, 18, 96, 50, 8, 36 };
// 排序前:
System.out.println(Arrays.toString(ns));
// TODO:
for(int i=0; i<ns.length-1; i++){
for(int j=i+1; j<ns.length; j++) {
if(ns[i] < ns[j]) {
int t = ns[i];
ns[i] = ns[j];
ns[j] = t;
}
}
}
// 排序后:
System.out.println(Arrays.toString(ns));
if (Arrays.toString(ns).equals("[96, 89, 73, 65, 50, 36, 28, 18, 12, 8]")) {
System.out.println("测试成功");
} else {
System.out.println("测试失败");
}
}
}
二维数组
打印二维数组方法:
1、双层嵌套
for (int[] arr : ns) {
for (int n : arr) {
System.out.print(n);
System.out.print(', ');
}
System.out.println();
}
2、自带的函数
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[][] ns = {
{ 1, 2, 3, 4 },
{ 5, 6, 7, 8 },
{ 9, 10, 11, 12 }
};
System.out.println(Arrays.deepToString(ns));
}
}
课后练习
想知道数组所有元素的个数,可在每次循环最后进行计数
package com.itranswarp.learnjava;
import jdk.javadoc.internal.doclets.toolkit.taglets.SummaryTaglet;
/**
* 二维数组
*/
public class Main {
public static void main(String[] args) {
// 用二维数组表示的学生成绩:
int[][] scores = { //
{ 82, 90, 91 }, //
{ 68, 72, 64 }, //
{ 95, 91, 89 }, //
{ 67, 52, 60 }, //
{ 79, 81, 85 }, //
};
// TODO:
double sum = 0;
double average = 0;
for(int[] stu:scores) {
for(int score : stu) {
sum = sum + score;
average++; // 计数
}
}
sum=sum/average;
System.out.println(sum);
if (Math.abs(sum - 77.733333) < 0.000001) {
System.out.println("测试成功");
} else {
System.out.println("测试失败");
}
}
}