1.対象要件
クラスで静的メソッドprintStarを定義します。このメソッドには戻り値がなく、整数のパラメーター番号が必要です。次の図に示すように、mainメソッドでこのメソッドを呼び出し、このメソッドを呼び出し、値6と値10を入力して結果を取得します。
2つの問題解決のアイデア
観察すると、各行の前のスペースの数は、行の総数(現在の行数)に等しいことがわかります。その後、最初と最後の2行を除いて、中央の行はすべてアスタリスクでマークされ、スペースは最後にアスタリスクでマークされていると結論付けることができます。したがって、ifステートメントを使用して次の3つの状況を判断できます
。①最初の行にアスタリスクを印刷します。
②最後の行に2xnumber-1(総行数)のアスタリスクを印刷します。
③それ以外の場合は、アスタリスクを印刷してから、2xi-3(iは現在の行番号)のスペースを印刷してから、アスタリスクを印刷してください。
フロー制御の構造が明確になったら、コードを書き始めることができます〜
3、コードの実装
静的printStarメソッドを定義する
class A{
public static void printStar(int number){
for(int i=1;i<=number;i++) {
for(int m=0;m<number-i;m++) {
System.out.print(" ");
}
if(i==1) {
System.out.println("*");
}
else if(i==number) {
for(int n=1;n<=2*number-1;n++) {
System.out.print("*");
}
System.out.println("\n");
}
else {
System.out.print("*");
for(int p=1;p<=2*i-3;p++) {
System.out.print(" ");
}
System.out.println("*");
}
}
}
}
テストクラスに電話する
public class Test {
public static void main(String[] args) {
//A类静态方法调用(直接调用)
A.printStar(6);
//A类非静态方法调用(需新建对象),即将方法头的static关键字去掉,方法名重命名为unprintStar
A star=new A();
star.unprintStar(10);
}
}
4、実行中の結果
全体的な実装は次のようになります〜静的メソッドと非静的メソッドについて明確でない友人がいる場合は、メッセージを残して話し合ってください!