您的位置:首页 > 编程语言 > Java开发

Java练手:利用循环绘制等腰三角形

2017-10-28 20:43 1436 查看
package argsAndFlow;

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class IsoscelesTri {
/*
*autor @乔一桥
*目标:输出一个由“*”组成的等腰三角形
*全局变量:intTriLine
*局部变量:intLine、intRows,intCount、intBegin,intEnd
*常量:REGEX
*方法:1、输入方法 String input()
2、绘图方法 void triDraw(int intTriLine)
3、正则式判断 booblean judge(String a)
*/
private static int intTriLine;
private static String REGEX="\\d";

//输入方法,用户输入生成的等腰三角形的行数
public String input()
{
Scanner scanner=new Scanner(System.in);
String intGetInput=scanner.nextLine();
return intGetInput;
}

//绘制三角形
public void triDraw(int intTriLine)
{
String strTransit=this.input();
if(this.Judge(strTransit)){
intTriLine=Integer.parseInt(strTransit);

int intCount=intTriLine*2-1;

if(intTriLine!=0){
for(int intLine=1;intLine<=intTriLine;intLine++)
{
//Java中"/"是向下取整的,所以+1,可以使用math.round()方法代替
int intBegin=(intCount+1)/2-intLine+1;
int intEnd=(intCount+1)/2+intLine-1;

for(int intRows=1;intRows<=intCount;intRows++)
{
if(intRows>=intBegin && intRows<=intEnd)
{System.out.print("*");}
else{System.out.print(" ");}
}
System.out.println();
}
}else{System.out.print("系统不能绘制0行三角,请重新输入:");this.triDraw(intTriLine);}
}else{System.out.print("输入无效,请重新输入:");this.triDraw(intTriLine);}
}
//判断输入的是否为数字
public boolean Judge(String a)
{
Pattern p=Pattern.compile(REGEX);
Matcher m=p.matcher(a);
return m.matches();
}

public static void main(String[] args) {
// TODO Auto-generated method stub
IsoscelesTri tri=new IsoscelesTri();
System.out.print("请输入绘制的行数:");
tri.triDraw(intTriLine);
}

}


输出结果

请输入绘制的行数:a
输入无效,请重新输入:0
系统不能绘制0行三角,请重新输入:5
*
***
*****
*******
*********
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java