十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
参考下面主要代码:
成都创新互联作为成都网站建设公司,专注成都网站建设、网站设计,有关企业网站设计方案、改版、费用等问题,行业涉及葡萄架等多个领域,已为上千家企业服务,得到了客户的尊重与认可。
public static void draw()
{
int n=10;
for(int i=1;i=n;i++)//控制行数
{
for(int k=n-1;k=i;k--)//打印空格
{
System.out.print(" ");
}
for(int j=1;j=2*i-1;j++)//打印*
{
System.out.print("*");
}
System.out.println();
}
for(int i=n-1;i=1;i--)
{
for(int k=i;k=n-1;k++)
{
System.out.print(" ");
}
for(int j=1;j=2*i-1;j++)
{
System.out.print("*");
}
System.out.println();
}
}
可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。
java
用 "*"输出菱形
一、整体实现思路:菱形9行9列可以将菱形分成上下两个三角形,分析每行空格数和星号个数的关系。
二、一个三角形的实现思路:以输出一个空心三角形为例:
(1)空格的输出按-1递减,字符的输出按等差数列,公差为2
(2)判断第一行和最后一行照常输出。
(3)中间行仅输出两个字符。
三、菱形分实心和空心两种,其代码及解析分别如下:
(一)实心菱形。
1、函数代码:
2、执行效果:
(二)空心菱形:
1、函数代码如下:
2、执行效果:
扩展资料:
java打印的输出方式解析:
1、print():print就是一般的标准输出,但是不换行。
2、println():println和print基本没什么差别,就是最后会换行。
要分辨清楚System.out.print()和System.out.println()的区别。System.out.print()是单纯的输出,而System.out.println()的功能是输出内容后换行,到达下一行,在使用时要注意区分两者之间的不同。
import java.util.Scanner;
public class Diamond {
public static void main(String[] args) {
int length=1;//存储菱形的边长的变量
Scanner sc =new Scanner(System.in);//输入数据的扫描对象
System.out.println("请输入菱形的边长:");
length = sc.nextInt();//获取输入的边长数值
/*打印菱形的上半部分三角形 行数为length行*/
for (int i=1; i=length;i++) {//需要打印的行数
for(int j=1;j=length-i;j++){//打印左边空白的区域,随行递减1
System.out.print(" ");
}
for(int k=1;k=2*i-1;k++){//打三角形的区域
if(k==1||k==2*i-1){//空心的获取 除每行第一个以及最后一个 外其余为空白
System.out.print("*");
}else{
System.out.print(" ");
}
}
System.out.println();
}
/*打印菱形的下半部分三角形 中间行公用 故行数为length-1*/
for (int i = length-1;i0;i--){
for(int j=1;j=length-i;j++){
System.out.print(" ");
}
for(int k=1;k=2*i-1;k++){
if(k==1||k==2*i-1){
System.out.print("*");
}else{
System.out.print(" ");
}
}
System.out.println();
}
}
}
我给你写了一个,参考一下吧。。import java.util.*;
public class H
{
public static void main(String args[])
{
int a,b,c,N;
System.out.println("请输入菱形的边长N");
N=new Scanner(System.in).nextInt();
for(a=0;aN;a++)
{
for(b=0;b=N-a;b++)
System.out.print(" ");
for(c=1;c=2*a-1;c++)
{
if(c==1||c==2*a-1)
System.out.print("*");
else
System.out.print(" ");
}
System.out.print("\n");
}
for(a=0;a=N;a++)
{
for(b=0;b=a;b++)
System.out.print(" ");
for(c=1;c=2*(N-a)-1;c++)
if(c==1||c==2*(N-a)-1)
System.out.print("*");
else
System.out.print(" ");
System.out.print("\n");
}
}
}
老乡,我来帮你解答吧
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class TestStar {
static void Star(int num) {
// 输入一次,菱形星星阵遍历
for (int i = 0; i num; i++) {
for (int j = num - i - 1; j 0; j--) {
System.out.print(" ");
}
for (int z = 0; z = i; z++) {
System.out.print("* ");
}
System.out.println();
}
for (int i = num - 2; i = 0; i--) {
for (int j = i; j num - 1; j++) {
System.out.print(" ");
}
for (int z = 0; z = i; z++) {
System.out.print("* ");
}
System.out.println();
}
// int c = 0;
// try {
// c = System.in.read();
// } catch (IOException e) {
// e.printStackTrace();
// }
// Star(c);
return;
}
public static void main(String[] args) {
while (true) {
try {
InputStreamReader reader = new InputStreamReader(System.in);
BufferedReader input = new BufferedReader(reader);
System.out.println("请输入菱形阵横向轴线上星星的个数:");
int num = 0;
String temp = input.readLine();
num = Integer.parseInt(temp);
if (num == 0) {
System.out.println("程序出口");
break;
}
if (num 0) {
System.out.println("您输入的数字有误!");
return;
}
Star(num);
} catch (IOException e) {
e.printStackTrace();
} catch (NumberFormatException e) {
}
}
}
}
关键是你的star()函数里,我注释掉的那几行,它永远走不出这个方法了,不会再执行while(true)了,就类似死循环了。try/catch语句应该写在while(true)里