十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
下面這個(gè)是打邊長(zhǎng)為5的,只有主要部分~~外面再加一個(gè)類就行了
成都創(chuàng)新互聯(lián)公司基于成都重慶香港及美國(guó)等地區(qū)分布式IDC機(jī)房數(shù)據(jù)中心構(gòu)建的電信大帶寬,聯(lián)通大帶寬,移動(dòng)大帶寬,多線BGP大帶寬租用,是為眾多客戶提供專業(yè)成都服務(wù)器托管報(bào)價(jià),主機(jī)托管價(jià)格性價(jià)比高,為金融證券行業(yè)服務(wù)器托管,ai人工智能服務(wù)器托管提供bgp線路100M獨(dú)享,G口帶寬及機(jī)柜租用的專業(yè)成都idc公司。
public static void main(String[] args) {
for(int i=1;i=5;i++)
{
for(int k=0;k11-i*2-1;k++)System.out.print(" ");
for(int j=1;j=i*2-1;j++)
{
if(j==1 || j==i*2-1) System.out.print("★");
else System.out.print(" ");
}
System.out.println();
}
for(int i=4;i0;i--)
{
for(int k=9;ki*2-1;k--)System.out.print(" ");
for(int j=1;j=i*2-1;j++)
{
if(j==1 || j==i*2-1) System.out.print("★");
else System.out.print(" ");
}
System.out.println();
}
}
這樣的代碼光是看是很難看明白的,自己舉個(gè)例子簡(jiǎn)單地在紙上寫一寫畫一畫,就比較容易明白了。
假定size=5,可以想像一下菱形的形狀,size/2+1=3,按以上代碼的邏輯來(lái)看,就是先處理上面的3行,然后處理下面剩下的2行。
處理上面3行的時(shí)候,每一行需要根據(jù)行數(shù)分別輸出*和空格。先看第1行,i==0.
for (int i = 0; i size / 2 + 1; i++) {
for (int j = size / 2 + 1; j i + 1; j--) {
System.out.print(" ");// 輸出左上角位置空白
}
這段代碼此時(shí)的i==1,內(nèi)層循環(huán)走完以后,會(huì)輸出2次空格(j==3,j==2時(shí)),
然后依次往下走。
不得不說(shuō),上面的代碼寫的太復(fù)雜了,這么多for循環(huán),看著好費(fèi)勁的說(shuō)~~
public class LingXKX
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
System.out.println("請(qǐng)輸入菱形變長(zhǎng):");
int num =sc.nextInt();
for (int i=1;i=num;i++)
{
for(int j=1;jnum-i+1;j++)
{
System.out.print(" ");
}
int count =2*i-1;
for(int k=0;kcount;k++)
{
if(0==k||count-1==k)
System.out.print("*");
else
System.out.print(" ");
}
System.out.println("");
}
for(int i=1;inum;i++)
{
for(int j=1;j=i;j++)
{
System.out.print(" ");
}
int count = 2*(num-i)-1;
for(int k=0;kcount;k++)
{
if(k==0||k==count-1)
System.out.print("*");
else
System.out.print(" ");
}System.out.println("");
}
}
}
java打印菱形通過(guò)二維數(shù)組來(lái)打印,實(shí)例如下:
int?hangshu?=?11;
int?yiban?=?hangshu?/?2?+?1;
int?yibanduo?=?hangshu?/?2;
System.out.println("空心菱形:");
for(int?k?=?1;k?=?yiban;k++){
for(int?i?=?1;i?=?(yiban?-?k);i++){
System.out.print("?");
}
System.out.print("*");
for(int?i?=?1;i?=?(?(k?-?2)?*?2?+?1);i++){
System.out.print("?");
}
if(k?!=?1){
System.out.print("*");
}
System.out.println();
}
for(int?k?=?yibanduo;k?=1;k--){
for(int?i?=?1;i?=?(yiban?-?k);i++){
System.out.print("?");
}
System.out.print("*");
for(int?i?=?1;i?=?(?(k?-?2)?*?2?+?1);i++){
System.out.print("?");
}
if(k?!=?1){
System.out.print("*");
}
System.out.println();
}
System.out.println("實(shí)心菱形:");
for(int?i?=?1;i?=?hangshu;i++){
if(i?=?hangshu/2?+?1){
for(int?k?=?1;k?=?hangshu/2?+?1-?i;k++){
System.out.print("?");
}
for(int?k?=?1;k?=?i;k++){
System.out.print("*?");
}
System.out.println();
}else{
for(int?k?=1;k?=?(i?-(hangshu/2?+?1));k++){
System.out.print("?");
}
for(int?k?=?1;k?=?(2?*(hangshu/2?+?1)?-?i);k++){
System.out.print("*?");
}
System.out.println();
}
}
結(jié)果如下:
顯示效果是這樣的:
代碼如下:
int?hangshu?=?11;
int?yiban?=?hangshu?/?2?+?1;
int?yibanduo?=?hangshu?/?2;
System.out.println("空心菱形:");
for(int?k?=?1;k?=?yiban;k++){
for(int?i?=?1;i?=?(yiban?-?k);i++){
System.out.print("?");
}
System.out.print("*");
for(int?i?=?1;i?=?(?(k?-?2)?*?2?+?1);i++){
System.out.print("?");
}
if(k?!=?1){
System.out.print("*");????
}
System.out.println();
}
for(int?k?=?yibanduo;k?=1;k--){
for(int?i?=?1;i?=?(yiban?-?k);i++){
System.out.print("?");
}
System.out.print("*");
for(int?i?=?1;i?=?(?(k?-?2)?*?2?+?1);i++){
System.out.print("?");
}
if(k?!=?1){
System.out.print("*");????
}
System.out.println();
}
System.out.println("實(shí)心菱形:");
for(int?i?=?1;i?=?hangshu;i++){
if(i?=?hangshu/2?+?1){
for(int?k?=?1;k?=?hangshu/2?+?1-?i;k++){
System.out.print("?");
}
for(int?k?=?1;k?=?i;k++){
System.out.print("*?");
}
System.out.println();
}else{
for(int?k?=1;k?=?(i?-(hangshu/2?+?1));k++){
System.out.print("?");
}
for(int?k?=?1;k?=?(2?*(hangshu/2?+?1)?-?i);k++){
System.out.print("*?");
}
System.out.println();
}????
}
囧字再看看
Java利用for循環(huán)輸出空心菱形的實(shí)例代碼
編寫程序,在控制臺(tái)上輸出空心菱形,對(duì)角距離為6.
代碼如下:
public class Diamond {
public static void main(String[] args) {
printHollowRhombus(6);
}
public static void printHollowRhombus(int size) {
if (size % 2 == 0) {
size++;// 計(jì)算菱形大小
}
for (int i = 0; i size / 2 + 1; i++) {
for (int j = size / 2 + 1; j i + 1; j--) {
System.out.print("? ");// 輸出左上角位置的空白
}
for (int j = 0; j 2 * i + 1; j++) {
if (j == 0 || j == 2 * i) {
System.out.print("* ");// 輸出菱形上半部邊緣
} else {
System.out.print("? ");// 輸出菱形上半部空心
}
}
System.out.println("");???? //換行
}
for (int i = size / 2 + 1; i size; i++) {
for (int j = 0; j i - size / 2; j++) {
System.out.print("? ");// 輸出菱形左下角空白
}
for (int j = 0; j 2 * size - 1 - 2 * i; j++) {
if (j == 0 || j == 2 * (size - i - 1)) {
System.out.print("* ");// 輸出菱形下半部邊緣
} else {
System.out.print("? ");// 輸出菱形下半部空心
}
}
System.out.println("");???? //換行
}
}
}
效果如圖: