1. 程式人生 > >用java實現輸出空心菱形的方法

用java實現輸出空心菱形的方法

有一部分人在學習java的時候基本都會遇到這個問題,我今天也是被這個問題難倒了,說難也不難,但是for迴圈一巢狀就蒙了(一部分原因是被書上的程式碼所迷惑了),一直想不明白,憋的腦袋都要炸了,看啥都不順眼,於是去網上搜索也是說的不咋詳細,有點看不懂,後來我靜下心一點一點理思路,終於把這個問題攻破了,在很多大神看來這是一個小問題,但像我這種初學者能自己做出來,已經很高興了,晚上吃飯都香哈哈,所以,我把這個問題非常詳細的整理了下來,發到網上,以便其他的初學者借鑑,同時也少走一些彎路,也減少了因解決不了問題而產生的一連串暴力事件等,廢話不熟,走起。
程式碼部分:

public class diamond1 {

        public
static void main(String args[]) { // 上半部分行數為四的三角形 // /* // 輸出形狀為 // i j ("-") // --- 0 3 // -- 1 2 // - 2 1 // 的三角形 // 當i=0(也就是第一行),代表"-"的j=3,然互根據下面兩行的規律的得出:j=3-i
// */ for (int i = 0; i < 4; i++) { //這裡i<4是因為有四行,雖然"-"只有三行,但只不過第四行全是"*" for (int j = 0; j < 3 - i; j++) {//倒著輸出三角形,j=3-i,因為從0開始,所以j<3-i System.out.print("-"); } // /* // 輸出形狀為 // i k ("*")
// * 0 1 // * * 1 2 // * * * 2 3 // * * * * 3 4 // 的三角形 // 當i=0(也就是第一行),代表"*"的k=1,然互根據下面三行的規律的得出:k=i+1 // */ for (int k = 0; k < i + 1; k++) {//輸出三角形,k=i+1,因為從0開始,所以k<i+1 //注意:這裡的*號後面有一個空格" " System.out.print("* ");//這裡的是"* ",後面有一個空格 } System.out.println();//換行,兒前面輸出"-" "*"的是print(不換行) } //下半部分行數為三的倒三角形 // /* // 輸出形狀為 // i j ("-") // - 0 1 // -- 1 2 // --- 2 3 // 的三角形 // 當i=0(也就是第一行),代表"-"的j=1,然互根據下面兩行的規律的得出:j=i+1 // */ for(int i=0;i<3;i++){//這裡i<3是因為有三行 for(int j=0;j<i+1;j++){//輸出三角形,j=i+1,因為從0開始,所以j=i+1 System.out.print("-"); } // /* // 輸出形狀為 // i k ("*") // * * * 0 3 // * * 1 2 // * 2 1 // 的三角形 // 當i=0(也就是第一行),代表"*"的k=3,然互根據下面三行的規律的得出:k=3-i // */ for(int k=0;k<3-i;k++){//倒著輸出三角形,k=3-i,因為從0開始,所以k<3-i System.out.print("* "); } System.out.println(); } } }

把程式碼粘到eclipse裡面執行的結果如圖:
這裡寫圖片描述
因為要做菱形,但做起來要包括前面的“-”號的,所以我它輸出出來,方便觀察,等做好了以後再把“-”替換成空格“ ”
然後替換成空格的執行結果如圖:
這裡寫圖片描述
替換之後就變成了美妙的菱形,但是要做空心菱形,所以要在原來的基礎上新增一些程式碼:
這裡寫圖片描述
圖中我只是在輸出下面的三角形距離,由於要輸出空心,所以要把第一個和最後一個“”留下來,剩下的用空格顯示。注:空格是兩個空格,因為要跟前面的星號空格保持一致“ ”,執行結果如圖:
這裡寫圖片描述
看,中間的星號沒有了吧,同理上面的三角形也用相同的方法,最後就會輸出一個空心菱形啦

相關推薦

java實現輸出空心菱形方法

有一部分人在學習java的時候基本都會遇到這個問題,我今天也是被這個問題難倒了,說難也不難,但是for迴圈一巢狀就蒙了(一部分原因是被書上的程式碼所迷惑了),一直想不明白,憋的腦袋都要炸了,看啥都不順眼,於是去網上搜索也是說的不咋詳細,有點看不懂,後來我靜下心一

C#實現 迴圈:空心菱形與實心菱形,三角形

三元表示式(三目運算): 語法:x>y?z:k 例如:      int int_num1 = 10;          &nb

Java輸出空心菱形

<p><span style="font-size:24px;">已知邊長n,輸出空心菱形?</span></p><p><span

java實現從命令行接收多個數字,求和之後輸出結果

system 程序流程圖 sta num 思想 pri for循環 含義 自動 1.設計思想 首先要了解從命令行輸入數字的含義,不需要在程序中自己定義。需要定義int類的num和sum。之後利用num=Integer.parseInt(arg);將String型轉化為int

java算法面試題:排序都有哪幾種方法?請列舉。JAVA實現一個快速排序。選擇冒泡快速集合至少4種方法排序

算法 err div println rda print 算法面試 ++ 快速排序 package com.swift; import java.util.ArrayList; import java.util.Collections; import java.util

java實現視訊截幀的方法

在軟體系統中有時在wed端、移動端顯示視訊時,如果同時顯示多個視訊,有可能會將多個視訊的資料全部裝入記憶體,在一定程度上回影響系統性能。比較好的一中解決方案是顯示視訊的一幀圖片,點選圖片之後即可播放視訊,是一種比較節省記憶體的方法,大型的網站很多也使用此方法,本篇文章主要

java實現圖片漸變疊加(3種方法

原理上是2種方法,但是可以用3種方法實現(沒想到花了我那麼多時間):1.是根據alpha值計算,象素的各單色分量衰減後相加;2.是修改一張圖片的透明度,然後用畫到另一張圖片上面;3.是象素點的插值,不涉及透明度的使用。做的時候先試的第3種方法的,花的時間最多,結果發現效果最

JAVA實現一種排序,JAVA實現序列化的方法(二種)? 如在COLLECTION框架中,實現比較要實現什麼樣的接

} 輸出結果: The ArrayList Sort Before: al[0]=79 al[1]=81 al[2]=14 al[3]=100 al[4]=92 al[5]=76 al[6]=5 al[7]=55 al[8]=39 al[9]=36 [79, 81, 14, 100, 92, 76, 5, 5

init.rc文件中面啟動c++程序,通過jni調java實現

mini val sni ril urn runtime sport mco env </pre><p>註:假設是自己的myself.jar包,還要修改例如以下:</p><p>target/product/core_bas

再談java實現Smtp發送郵件之Socket編程

~~ 成功 剛才 還要 登陸 computer and ont sys 很多其它內容歡迎訪問個人站點 http://icodeyou.com 前幾天利用Socket實現了用java語言搭建webserver,全程下來應該會對Socket這

java實現一個簡單的單戶登陸功能的思路

get 單用戶 這樣的 簡單的 lock ref 數據庫 清除 一個 引用 所謂“單用戶單賬戶登錄”是指:在同一系統中,一個用戶名不能在兩個地方同時登錄。 我們參照 QQ 實現效果:當某賬號在 A 處登錄後,在未退出的情況下,如果再到 B 處登錄,那麽,系統會擠下 A 處

java實現的strstr函數的一些問題

符號 clas bsp 問題: pub spa 操作 記錄 位置 用java實現過程如下: 1 public static int strstr(char[] cArray1,char[] cArray2){ 2 if(cArray1!=null &&

Java實現的選擇排序和冒泡排序

auth main sta -i str public java index 選擇 選擇排序 package cn.hxd.sort; /** * 選擇排序 * @author Administrator * */ public class SelectionSo

Java實現字母排列的三角形

int true bst 字母 main println logs abcd rgs public class HomeWork03 { public static void main(String[] args) { String st

【C/C++】:C實現輸出日期的陰歷日子

print http this while lunar void 大小 oid pan 前言 輸出陰歷一直是個老大難的問題。由於陰歷日子沒有規律。所以這裏須要做的就是通過打表的算法做到輸出陰歷日子,可是非常多人都不太了解原理,我這裏就給大家送上了一個福

Lua實現string的trim()方法

abcd implement rate module posit time cor ring targe 1 function trim1(s) 2 return (s:gsub("^%s*(.-)%s*$", "%1")) 3 end 4 -- fr

java實現一個簡易編譯器1-詞法解析入門

new 概念 自加 我們 sta 數字 獲得 () 操作系統 本文對應代碼下載地址為: http://download.csdn.net/detail/tyler_download/9435103 視頻地址: http://v.youku.com/v_show/id_XMT

數據結構(三) java實現七種排序算法。

得到 最簡 上傳 根節點 位置 中間 log 說明 堆排序       很多時候,聽別人在討論快速排序,選擇排序,冒泡排序等,都覺得很牛逼,心想,臥槽,排序也分那麽多種,就覺得別人很牛逼呀,其實不然,當我們自己去了解學習後發現,並沒有想象中那麽難,今天就一起總結一下各種排序

Java實現AES加密(轉)

密鑰 工具 mex 嚴格 keys 生產 ner for 創建 一)什麽是AES? 高級加密標準(英語:Advanced Encryption Standard,縮寫:AES),是一種區塊加密標準。這個標準用來替代原先的DES,已經被多方分析且廣為全世界所使用。 那麽為什麽

Java實現輸出此時此刻

cti IV new pre col minutes nth color etsec function date() { let weekday = []; weekday[0] = "周日"; weekday[1] = "周一"; wee