题目:编写一个程序,接收一个整数表示层数(totalLevel),用for循环打印空心金字塔。(Stars.java)
编程思想:化繁为简,先死后活
思路分析:
1,用for循环打印一个5层矩形:
public class Stars{
public static void main(String[] args){
//用i表示层数,目前是第i层,一共5层
for ( int i = 1 ; i <= 5 ; i ++ ){
System.out.println("*****");
}
}
}
2,用for循环打印一个5层直角三角形:(注意println和print的区别)
public class Stars{
public static void main(String[] args){
for ( int i = 1 ; i <= 5 ; i ++ ){
//用 i表示层数,目前是第i层,一共5层
for ( int j = 1 ; j <= i ; j ++ ){
//用j表示第i层第j个位置要打印的字符
System.out.print("*");
}
System.out.println("");
}
}
}
3 ,用for循环打印一个反向的5层直角三角形:
public class Stars{
public static void main(String[] args){
for ( int i = 1 ; i <= 5 ; i ++ ){
//用i表示层数,目前是第i层,一共5层
for ( int k = 1 ; k <= 5 - i ; k ++ ){
//用k表示第i层金字塔外第k个位置要打印的字符
System.out.print(" ");
}
for ( int j = 1 ; j <= i ; j ++ ){
//用j表示第i层金字塔内第j个位置要打印的字符
System.out.print("*");
}
System.out.println("");
}
}
}
4,用for循环打印一个5层的金字塔:
public class Stars{
public static void main(String[] args){
for ( int i = 1 ; i <= 5 ; i ++ ){
//用 i表示层数,目前是第i层,一共5层
for ( int k = 1 ; k <= 5 - i ; k ++ ){
//用k表示第i层金字塔外第k个位置要打印的字符
System.out.print(" ");
}
for ( int j = 1 ; j <= 2 * i - 1 ; j ++ ){
//用j表示第i层金字塔内第j个位置要打印的字符
System.out.print("*");
}
System.out.println("");
}
}
}
5,将5层金字塔的内部镂空:每层除首尾其余打空格(注意if里面的=使用判断的==)
public class Stars{
public static void main(String[] args){
for ( int i = 1 ; i <= 5 ; i ++ ){
//用 i表示层数,目前是第i层,一共5层
for ( int k = 1 ; k <= 5 - i ; k ++ ){
//用k表示第i层金字塔外第k个位置要打印的字符
System.out.print(" ");
}
for ( int j = 1 ; j <= 2 * i - 1 ; j ++ ){
//用j表示第i层金字塔内第j个位置要打印的字符
//每层除首尾其余打空格
if ( j == 1 || j == 2 * i - 1 ){
System.out.print("*");
}else{
System.out.print(" ");
}
}
System.out.println("");
}
}
}
6,最后一层全部输出*:
public class Stars{
public static void main(String[] args){
for ( int i = 1 ; i <= 5 ; i ++ ){
//用 i表示层数,目前是第i层,一共5层
for ( int k = 1 ; k <= 5 - i ; k ++ ){
//用k表示第i层金字塔外第k个位置要打印的字符
System.out.print(" ");
}
for ( int j = 1 ; j <= 2 * i - 1 ; j ++ ){
//用j表示第i层金字塔内第j个位置要打印的字符
//每层除首尾其余打空格
if ( j == 1 || j == 2 * i - 1 || i == 5 ){
System.out.print("*");
}else{
System.out.print(" ");
}
}
System.out.println("");
}
}
}
7,将层数5改为一个int变量来接收:
public class Stars{
public static void main(String[] args){
int totalLevel = 20;
for ( int i = 1 ; i <= totalLevel ; i ++ ){
//用 i表示层数,目前是第i层,一共5层
for ( int k = 1 ; k <= totalLevel - i ; k ++ ){
//用k表示第i层金字塔外第k个位置要打印的字符
System.out.print(" ");
}
for ( int j = 1 ; j <= 2 * i - 1 ; j ++ ){
//用j表示第i层金字塔内第j个位置要打印的字符
//每层除首尾其余打空格
if ( j == 1 || j == 2 * i - 1 || i == totalLevel ){
System.out.print("*");
}else{
System.out.print(" ");
}
}
System.out.println("");
}
}
}