最近読んだフォーラムの1つで、Javaの学生からの興味深いリクエストを見つけました。彼のクラスはforループを使用して、アスタリスク(*)からダイヤモンドを描画するように要求されていました。彼には正しい機能するソリューションがありましたが、非常に複雑でいくつかのループが含まれていたため、マークダウンされていました。学生は、同じ結果を達成するためのより簡単な方法に関する提案を求めました。これは興味深い問題だと思い、自分の手で試してみることにしました。私のプログラムは以下にあります(またはここからコピーをダウンロードできます)。これは明らかにプロダクションコードではありません。1つには、?:演算子のシンプルさが大好きですが、プロダクションコードでは使用しないようにしています。プログラマーは、それが読みにくく理解しにくくなることに気づきます。言うまでもなく、このコードは次の場合に壊れます
max_width は、46より大きい数に変更されます。ただし、これは、目的の結果を達成するためのかなりコンパクトで論理的な方法の例です。もっと良くできますか?フォーラムで報告してください。
/*
* diamonds.java
*
* 2007年6月4日、午後11時39分に作成
*/
/**
*
* @著者Julie Baumler
*/
パブリッククラスダイヤモンド{
/ **ダイヤモンドの新しいインスタンスを作成します* /
public diamonds(){
}
/**
* @paramはコマンドライン引数を引数に取ります
*/
public static void main(String [] args){
int max_width = 9; //ダイヤモンドを作るための幅の文字数
int width = max_width%2 == 0? max_width / 2:max_width / 2 +1;
文字列stars = "************************************************* ";
文字列spaces = "";
for(int i = 1; i <(width * 2); i ++){
System.out.print(spaces.substring(0、(i
System.out.println(stars.substring(0,2 *(i <= width?i:width-(i%width))-1));
}
}
}
元のリクエスト:
ピニモ。 「java(sic)で助けてください。」オンライン投稿。 2007年5月13日の週。Javaディスカッション(フォーラム)。 2007年6月4日。
動画の説明: 【マインクラフト】ある裏技でダイヤを見つける!洞窟生活クラフト!生声実況 Part15 (四月 2024).