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.mzph.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…