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
- for迴圈列印空心菱形的新方法
- 04流程控制 for迴圈,while迴圈While
- Java for迴圈倒序輸出Java
- Dart - 迴圈控制Dart
- Python迴圈控制-forPython
- 分別使用while迴圈、do…while迴圈和for迴圈輸出1~100之間的所有偶數While
- 用Java中for迴圈語句列印菱形Java
- 第四章 控制和迴圈
- for 迴圈與 while 迴圈While
- while迴圈 case迴圈While
- C語言——迴圈結構(for迴圈,while迴圈,do-while迴圈)C語言While
- while迴圈/格式化輸出/運算子/編碼While
- Python的流程控制:迴圈Python
- C#程式設計基礎第七課:C#中的基本迴圈語句:while迴圈、do-while迴圈、for迴圈、foreach迴圈的使用C#程式設計While
- 無限for迴圈(死迴圈)
- PHP輸出金字塔及空心菱形PHP
- 多執行緒迴圈控制欄位失效造成死迴圈的坑執行緒
- Qt原始碼閱讀(四) 事件迴圈QT原始碼事件
- 迴圈輸出——閉包、變數作用域變數
- while迴圈以及do while迴圈While
- PbootCMS lopp迴圈語句使用用於根據迴圈輸出一段內容boot
- 程式碼日數:高階迴圈
- if迴圈
- 迴圈
- for迴圈
- if for迴圈
- For 迴圈
- 流程控制、 迴圈語句
- 格式化輸出,while迴圈,運算子,初識編碼While
- 【基礎題】【for迴圈】分別輸出A~Z, a ~ z。
- 迴圈中的非同步&&迴圈中的閉包非同步
- shell指令碼while迴圈、read讀取控制檯輸入與函式指令碼While函式
- for迴圈的概念
- for迴圈的理解
- 11C++迴圈結構-for迴圈(1)C++
- for迴圈、break和continue、二重迴圈
- 【基礎題】【for迴圈】二重迴圈
- 替代 for 迴圈,讓 Python 程式碼更 pythonic !Python