11. While循环与自增运算符遍历数组
public class ErgodicArray {
public static void main(String[] args) {
String[] aves=new String[]{
"A","B","c","p"};
int index=0;
System.out.println("数组遍历结果为:");
while (index < aves.length) {
System.out.println(aves[index++]);
}
}
}
12.for循环输出杨辉三角
二维数组其实是一维数组的每个元素都是另一个一维数组,所以第二维数组长度可以任意。杨辉三角可看为一个数字表,特征是俩测数值均为1,其他位置的数值是其正上方的数值与左上角数值之和。
import java.util.Scanner;
public class YangHuitriangle {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int row = s.nextInt();
//根据行数定义二维数组,每一行元素的个数不同,不定义每一行的个数
int[][] arr=new int[row][];
//遍历二维数组
for (int i = 0; i < row; i++) {
//初始化每一行的这个一维数组
arr[i] = new int[i + 1];
for (int j = 0; j <= i; j++) {
//每一行的开头和结尾都是1,开头时j=0,结尾j=1
if (j == 0 || j == i) {
arr[i][j]=1;
}else{
arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];
}
System.out.println(arr[i][j] + "\t");
}
System.out.println();
}
}
}
13. 输出九九乘法表
创建双层for循环,第一层为外层循环,控制表格的行,第二层为内层循环,控制表格的列。第二层循环的控制变量非常重要,条件判断为列数要等于行数的最大值。
public class MultiplicationTable {
public static void main(String[] args) {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
System.out.println(j + "*" + "i" + "=" + i * j + "\t");
}
}
}
}
- While循环计算1+1/2!+1/3!…1/20!
使用double精度不够,故用BigDecimal类的实例来完成运算
import java.math.BigDecimal;
public class Jiecheng {
public static void main(String[] args) {
BigDecimal sum = new BigDecimal(0.0);
BigDecimal factorial = new BigDecimal(1.0);
int i=1;
while (i <= 20) {
sum=sum.add(factorial);
++i;
factorial = factorial.multiply((new BigDecimal(1.0 / i)));
}
System.out.println(sum);
}
}
- 输出各种图形
等腰角形
public class Dengyao {
public static void main(String[] args) {
for(int i=1;i<=5;i++){//i--控制行
for(int j=5-i;j>=0;j--){//j--控制空格的数量
System.out.print(" ");
}
for(int k=1;k<=2*i-1;k++){//k--控制*的数量
System.out.print("*");
}
System.out.println();//每循环一次换行
}
}
}
打印直角三角形
public class Zhijiao {
public static void main(String[] args) {
for(int i=1;i<=5;i++){
for(int k=1;k<=i;k++){
System.out.print("*");
}
System.out.println();
}
}
}
空心菱形
public class KongxinLingxing {
public static void main(String[] args) {
int num = 5;
for(int i=1;i<=num;i++){
for(int j=1;j<=num-i;j++){
System.out.print(" ");
}
for(int k=1;k<=2*i-1;k++){
if(k==1||k==2*i-1){
System.out.print("*");
}
else{
System.out.print(" ");
}
}
System.out.println();
}
for(int i=1;i<num;i++){
for(int j=1;j<=i;j++)
System.out.print(" ");
int count = 2*(num-i)-1;
for(int k=0;k<count;k++) {
if(k==0||k==count-1)
System.out.print("*");
else
System.out.print(" ");
}
System.out.println("");
}
}