java控制臺打印圖片_java——控制臺輸入打印圖形

1. 打印直角三角形

需求說明:從控制臺輸入直角三角形的高度(行數)。每行*的數目依次為1、3、5、7等

實現思路:外層循環控制行數,根據用戶輸入的行數得到外層循環條件

分析每行打印的內容:

每一行均打印*號,第i行的*號數為2*i-1,從而得到內層循環條件代碼如下:

代碼如下:

import java.util.Scanner;

publi cclass Three {

public static void main(String[] args)

{

int rows = 0;

Scanner input = new Scanner(System.in);

System.out.println("請輸入直角三角形的行數:");

rows=input.nextInt();

for(int i=0; i<=rows; i++){

for(int j=0; j<2*i-1; j++){

System.out.print("*");

}

System.out.println("");

}

}

}

2. 打印倒直角三角形

需求說明:從控制臺輸入直角三角形的高度(行數)。每行*的數目從下至上依次為1、2、3、4等。

實現思路:外層循環控制行數,根據用戶輸入的行數得到外層循環條件。分析每行打印的內容,每一行均打印*號,某一行與該行的*號數之和等于行數加1,從而得到內層循環條件。

例如:用戶從控制臺輸入的行數用rows表示,第幾行用i表示,*號數用x表示,那么第i行就是:i+x=rows+1-----à*號數x=rows+1-i

代碼如下:

import java.util.Scanner;

public class Four {

public static void main(String[] args){

int rows=0;

Scanner input = new Scanner(System.in);

System.out.println("請輸入直角三角形的行數:");

rows=input.nextInt();

for(int i=1; i<=rows; i++){

for(int j=1; j<=rows+1-i; j++){

System.out.print("*");

}

System.out.println("");

}

}

}

3. 打印等腰三角形

需求說明:從控制臺輸入直角三角形的高度(行數)。每行*的數目依次為1、3、5、7等。

實現思路:外層循環控制行數,根據用戶輸入的行數得到外層循環條件。

分析每行打印的內容:每一行先打印空格,再打印*號。打印空格和打印*號用兩個不同的for循環。為了清晰起見,下面我們以#號代替空格

分析每行空格數、*號數和行數的關系:第i行的空格數與i之和等于用戶從控制臺輸入的行數rows,第i行*號數為2*i-1,從而得到兩個內層for循環的循環條件。

例如:

用戶從控制臺輸入的行數用rows表示,第幾行用i表示,空格數數用space表示,那么第i行就是:i+space=rows--------à空格數space=rows-i

代碼如下:

import java.util.Scanner;

public class Five {

public static void main(String[] args) {

int rows=0;

Scanner input = new Scanner(System.in);

System.out.println("請輸入等腰三角形的行數:");

rows=input.nextInt();

for(int i=1; i<=rows; i++){

for(int j=1; j<=rows-i; j++){

System.out.print("#");

}

for(int k=1; k<=2*i-1; k++){

System.out.print("*");

}

System.out.println("");

}

}

}

4. 打印菱形

需求說明:從控制臺輸入菱形的高度(行數),如果用戶輸入的行數合法(奇數),則打印出菱形,否則提示用戶輸入奇數。

實現分析:假設每行輸入的行數為rows,則每行的*號數依次為1、3、5、7、......、rows、......、7、5、3、1

實現思路:

(1)利用while循環判斷用戶輸入的是否為奇數。

int rows=0;

Scanner input = new Scanner(System.in);

System.out.println("請輸入菱形行數:");

rows=input.nextInt();

while(rows%2==0){

System.out.println("請輸入奇數:");

rows=input.nextInt();

}

(2) 分步打印,先打印菱形的上半部分,即一個等腰三角形,行數為(rows+1)/2,可以

得到外層循環和兩個內層循環的循環條件。

int n=(rows+1)/2;

for(int i=1;i<=n;i++){

for(int j=1; j<=n-i; j++){

System.out.print(" ");

}

for(int k=1; k<=2*i-1; k++){

System.out.print("*");

}

System.out.print("\n");

}

(3)打印菱形的下半部分,打印完一行后換行

for(int i=n-1; i>=1; i--){

for(int j=0; j

System.out.print(" ");

}

for(int k=0; k<2*i-1; k++){

System.out.print("*");

}

System.out.print("\n");

}

完整代碼如下:

import java.util.Scanner;

public class Six {

public static void main(String[] args) {

int rows=0;

Scanner input = new Scanner(System.in);

System.out.println("請輸入菱形行數:");

rows=input.nextInt();

while(rows%2==0){

System.out.println("請輸入奇數:");

rows=input.nextInt();

}

int n=(rows+1)/2;

for(int i=1;i<=n;i++){

for(int j=1; j<=n-i; j++){

System.out.print(" ");

}

for(int k=1; k<=2*i-1; k++){

System.out.print("*");

}

System.out.print("\n");

}

for(int i=n-1; i>=1; i--){

for(int j=0; j

System.out.print(" ");

}

for(int k=0; k<2*i-1; k++){

System.out.print("*");

}

System.out.print("\n");

}

}

}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/541411.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/541411.shtml
英文地址,請注明出處:http://en.pswp.cn/news/541411.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java日歷compareTo()方法與示例

日歷類的compareTo()方法 (Calendar Class compareTo() method) compareTo() method is available in java.util package. compareTo()方法在java.util包中可用。 compareTo() method is used to compare two Calendar objects or in other words, we can say this method is u…

在struts2中配置自定義攔截器放行多個方法

源碼&#xff1a; 自定義的攔截器類&#xff1a; //自定義攔截器類:LoginInterceptor ; package com.java.action.interceptor; import javax.servlet.http.HttpSession; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionInvocation;im…

java多態和泛型_Java面向對象(二) 接口、多態和泛型

一、接口二、多態多態是同一個行為具有多個不同表現形式或形態的能力。2.1 類型轉換轉換方式隱式 向上轉型對于基本數據類型&#xff0c;存儲容量低的可自動向存儲容量高的類型轉換對于引用變量&#xff0c;子類可被轉換為超類&#xff0c;可被賦給所屬類實現的接口的引用顯式 …

Java ArrayList contains()方法及示例

ArrayList類contains()方法 (ArrayList Class contains() method) contains() method is available in java.util package. contains()方法在java.util包中可用。 contains() method is used to check whether this Arraylist contains the given object or not. contains()方法…

BlockingQueue詳解

前言&#xff1a; 在新增的Concurrent包中&#xff0c;BlockingQueue很好的解決了多線程中&#xff0c;如何高效安全“傳輸”數據的問題。通過這些高效并且線程安全的隊列類&#xff0c;為我們快速搭建高質量的多線程程序帶來極大的便利。本文詳細介紹了BlockingQueue家庭中的所…

java isempty_Java ArrayDeque isEmpty()方法與示例

java isemptyArrayDeque類isEmpty()方法 (ArrayDeque Class isEmpty() method) isEmpty() Method is available in java.lang package. isEmpty()方法在java.lang包中可用。 isEmpty() Method is used to check whether this deque is "empty" or "non-empty&qu…

[QGLViewer]3D場景鼠標點擊位置

重載鼠標事件&#xff1a; void AxMapControl::mousePressEvent(QMouseEvent* e) {switch(currentTool){case AX_DRAW_DIRECTION:{if (e->button() Qt::LeftButton) {QPoint screenPte->pos();qglviewer::Vec orig1, dir1;camera()->convertClickToLine(screenPt, or…

elispce導入java項目_emacs的java編程環境設置(jdee,lib,cedet,ecb

1&#xff1a;下載jdee,lib,ecb。(已安裝cedet就不用再安了)2&#xff1a;解壓縮放入load-path目錄。然后load&#xff0c;require。(add-to-list load-path "~/.emacs.d/lisp/jdee-2.4.0.1/lisp")(add-to-list load-path "~/.emacs.d/lisp/elib-1.0")(add…

element 項目 示例_Java ArrayDeque element()方法與示例

element 項目 示例ArrayDeque類element()方法 (ArrayDeque Class element() method) element() Method is available in java.lang package. element()方法在java.lang包中可用。 element() Method is used to retrieve the first element of the deque but without removing t…

can收發器 rx_CANOpen系列教程03 _CAN收發器功能、原理及作用

1寫在前面前面文章是從大方向介紹了CAN網絡&#xff0c;讓大家對CAN網絡有一定的認識。本文將范圍縮小&#xff0c;講述整個CAN網絡其中的一個CAN收發器。如下圖標記出來的部分&#xff1a;本文結合眾多初學者容易產生的疑問來講述CAN收發器相關的知識點&#xff0c;大概有如下…

操作系統文件分配策略_操作系統中的文件分配方法

操作系統文件分配策略分配方法 (Allocation Method) The allocation method defines how the files are stored in the disk blocks. The direct access nature of the disks gives us the flexibility to implement the files. In many cases, different files or many files …

簡述container與container-fluid的區別

在bootstrap中的布局容器一欄中&#xff0c;提供了container與container-fluid兩種容器&#xff0c;其官方解釋為&#xff1a; .container 類用于固定寬度并支持響應式布局的容器。 .container-fluid 類用于 100% 寬度&#xff0c;占據全部視口&#xff08;viewport&#xff09…

centos php fpm 停止_如何關閉php-fpm進程?

因為你是編譯的&#xff0c;可以在源碼中復制php-fpm的init文件到系統中&#xff1a;cp -f sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm然后就可以使用以下命令啟動、停止、重啟和重新加載php-fpm了&#xff1a;service php-fpm startservice php-fpm restartservice php-fpm…

minus_Java Duration類| minus()方法與示例

minus持續時間類minus()方法 (Duration Class minus() method) Syntax: 句法&#xff1a; public Duration minus(Duration d);public Duration minus(long amt, TemporalUnit t_unit);minus() method is available in java.time package. minus()方法在java.time包中可用。 m…

Mongodb聚合函數

插入 測試數據 for(var j1;j<3;j){ for(var i1;i<3;i){ var person{Name:"jack"i,Age:i,Address:["henan","wuhan"],Course:[{Name:"shuxue",Score:i},{Name:"wuli",Score:i}]}db.DemoTest.Person.insert(pers…

php rename函數_php rename函數怎么用

PHP rename()函數用于重命名文件或目錄&#xff0c;語法“rename(文件舊名稱,新名稱,句柄環境)”&#xff0c;使用用戶指定的新名稱更改文件或目錄的舊名稱&#xff0c;并且可以根據需要在目錄之間移動&#xff1b;成功時返回True&#xff0c;失敗時返回False。php rename()函數…

Java BigInteger類| xor()方法與示例

BigInteger類的xor()方法 (BigInteger Class xor() method) xor() method is available in java.math package. xor()方法在java.math包中可用。 xor() method is used to perform xor operation between this BigInteger and the given BigInteger and we all know when we pe…

Spring Data Redis實戰之提供RedisTemplate

為什么80%的碼農都做不了架構師&#xff1f;>>> 參考&#xff1a; http://www.cnblogs.com/edwinchen/p/3816938.html 本項目創建的是Maven項目 一、pom.xml引入dependencies <dependency><groupId>org.springframework.data</groupId><artif…

Java BigInteger類| and()方法與示例

BigInteger類和()方法 (BigInteger Class and() method) and() method is available in java.math package. and()方法在java.math包中可用。 and() method is used to perform and operation between this BigInteger and the given BigInteger (val) [i.e. (this BigInteger)…

php映射,PHP實現路由映射到指定控制器

自定義路由的功能&#xff0c;指定到pathinfo的url上,再次升級之前的腳本SimpleLoader.phpclass SimpleLoader{public static function run($rulesarray()){header("content-type:text/html;charsetutf-8");self::register();self::commandLine();self::router($rule…