13,javase程式碼實戰-迴圈控制——for迴圈輸出空心的菱形(四)
問題介紹:
在控制檯列印一個空心的菱形,輸入引數為菱形的邊長。
這是公司面試和考試題目,目的是為了靈活使用for迴圈兩層巢狀的使用。
問題分析:
程式碼實現:
/**
* 演算法思想:把空心菱形分成兩部分輸出。
* 上半部分:根據邊長size的大小,輸出size行,每一行先輸出空白格,在輸出後面的*和空白格。
* 現後順序和輸出的邏輯,根據當前行號和輸出資訊的數學關係式處理。
* 下半部分:輸出size減1行,每一行也是先輸出空白格,在輸出*和空白格。
*
*
* 虛擬碼:
* 1,size接受使用者的邊長輸入。
* 2,for迴圈i<=size 執行迴圈體
* 2.1 for迴圈j=1,j<=size-i 執行迴圈體
* 2.1.1 輸出空白格
* 2.2 for迴圈j=1,j<2*i 執行迴圈體
* 2.2.1 如果 j等於1 或者 j等於2*i-1(每行至多2個*) 。則輸出*
* 2.2.2 否則輸出中間的空心空白格
* 2.3 換行
*
* 3,類似2中的處理
*
*/
Scanner s =new Scanner(System.in);
int size =s.nextInt();//邊長
//上半部分
for(int i =1;i<=size;i++){//配合 換行操作,控制每一行
//一行中的 空白輸出
for(int j =1 ;j<=size-i;j++){
System.out.print(" ");
}
//一行中剩餘的 星號和空白輸出
for(int j=1;j<2*i;j++){
if(j==1 || j==2*i-1){
System.out.print("*");
}else {
System.out.print(" ");
}
}
//換行
System.out.println();
}
for(int i =1;i<=size-1;i++){
for(int j=1;j<=i;j++){
System.out.print(" ");
}
for(int j=1;j<=2*(size-i);j++){
if(j==1 || j==2*(size-i)-1){
System.out.print("*");
}else{
System.out.print(" ");
}
}
System.out.println();
}
}
總結:
1,如果不加換行操作,那麼就會全部輸出成一行中,根本體現不了菱形,是菱形每一行的順序排列。
2,單純的使用兩層for迴圈時,可以對一大段資料,進行分段式的處理。本例子中,for迴圈被使用到了平面圖形的生成,不僅可以生成菱形,正方形,圓 ,柱形 都可以實現的。所以,我們在分析這些影象時,要從for迴圈的角度(計算機角度)去考慮分析問題。
3,比如說菱形,我們可以畫出一個菱形。怎麼用java程式設計輸出呢?我們可以將其拆分每一行,顯然屬於一個分段式的資料。就可以考慮使用for迴圈來處理。
反過來,我們用for迴圈去處理時,就可以把第一層迴圈看成菱形的行號,第二層的迴圈做菱形的每一行的資訊的輸出。
相關文章
- Java利用迴圈列印菱形、空心菱形Java
- 14,javase程式碼實戰-迴圈控制——foreach迴圈的使用(五)Java
- 15,javase程式碼實戰-迴圈控制——迴圈的終止與過濾(六)Java
- 11,javase程式碼實戰-迴圈控制——for迴圈實現九九乘法表(二)Java
- 陣列迴圈輸出陣列
- 04流程控制 for迴圈,while迴圈While
- 10,javase程式碼實戰-迴圈控制——使用while與自增運算子實現遍歷陣列(一)JavaWhile陣列
- JavaScript的map迴圈、forEach迴圈、filter迴圈、reduce迴圈、reduceRight迴圈JavaScriptFilter
- 12,javase程式碼實戰-迴圈控制——用while計算1+1/ 2!+1/ 3!+....+1/ 10!(三)JavaWhile
- Dart - 迴圈控制Dart
- 用Java中for迴圈語句列印菱形Java
- JavaScript迴圈輸出星星圖案JavaScript
- PLSQL Language Referenc-PL/SQL控制語句-迴圈語句-FOR迴圈-FOR迴圈中的索引SQL索引
- Java學習之for迴圈列印菱形練習Java
- Python迴圈控制-forPython
- 流程控制 -- for迴圈
- C語言——迴圈結構(for迴圈,while迴圈,do-while迴圈)C語言While
- 輸出1-100,不使用迴圈 goto 遞迴Go遞迴
- C#程式設計基礎第七課:C#中的基本迴圈語句:while迴圈、do-while迴圈、for迴圈、foreach迴圈的使用C#程式設計While
- Qt原始碼閱讀(四) 事件迴圈QT原始碼事件
- 迴圈輸出——閉包、變數作用域變數
- C#教程第四課:迴圈控制語句C#
- PLSQL Language Referenc-PL/SQL控制語句-迴圈語句-FOR迴圈SQL
- PHP輸出金字塔及空心菱形PHP
- Python的流程控制:迴圈Python
- jQuery - 函式 $().each() 的迴圈控制jQuery函式
- 流程控制、 迴圈語句
- swift控制流——迴圈語句Swift
- linux 迴圈控制語句Linux
- PL/SQL迴圈控制語句SQL
- PLSQL Language Referenc-PL/SQL控制語句-迴圈語句-WHILE迴圈SQLWhile
- 【基礎題】【for迴圈】分別輸出A~Z, a ~ z。
- Linux Shell程式設計(18)—— 迴圈控制Linux程式設計
- 迴圈中的非同步&&迴圈中的閉包非同步
- Java入門學習-學習if & else,for迴圈,foreach迴圈,while迴圈的用法。JavaWhile
- 日本13歲女學生被警方調查:因釋出 JavaScript 無限迴圈程式碼JavaScript
- 【基礎題】【for迴圈】二重迴圈
- JS優化迴圈之展開迴圈JS優化