打印菱形java
1. java的for循环打印菱形公式是什么
打印菱形其实很简单,记得高中数学的公式么 Sn =a1+(n-1)*d
打印菱形一般分成两部分,第一部分是打印正三角(一个空白三角+星星正三角),然后是倒三角(空白三角+星星到三角)
每个三角形分别用两个for循环嵌套实现
例如:
for (int i = 1; i < 4; i++) {
for (int j = 1; j <= 1 + (i - 1) * 2; j++) {
System.out.print("*");
}
System.out.println();
}
两个for循环,外面的for循环控制输出的星星或空白的行,里面的for循环控制输出列。
例如上面外层for值分别是 1 2 3 。
而我们相输出的列是 1 3 5 7.....
这个数列递增值d=2 // Sn =a1+(n-1)*d
那么套用公式里面的循环就应写for(int j=1;j<=1+(i-1)*2;j++)
就能输出 1 3 5 7 个星星
倒三角也一样 套公式
倒三角的d值为-2 ,
用了这个公式,输出三角真的跟浮云一样简单 // Sn =a1+(n-1)*d
2. java打印菱形。
public class test2 {public static void main(String[] args) {
//这个for执行四次
//第一次:打印9个空格,然后打印一个*,然后加个空格
//第二次:打印7个空格,然后打印三次 *加空格
//第三次:打印5个空格,然后打印五次 *加空格
//第四次:打印3个空格,然后打印7次 *加空格
for (int i = 0; i < 8; i++) { if (i % 2 == 0) { //这里表示只对i是偶数的时候执行下面的操作 for (int j = 0; j < 9 - i; j++) { //空格主要是给下面的行留空间,保证对齐
System.out.print(" "); //第一次打印7个空格,第二次5 } for (int j = 0; j < (i + 1); j++) { System.out.print('*' + " "); } System.out.println(); } } // 中部以及下半部分
//这个for也是四次
//第一次:打印4个空格,然后打印5次 空格加*
//第二次:打印6个空格,然后打印3次 空格加*
//第三次:打印8个空格,然后打印1次 空格加*
//第四次:打印10个空格,然后不打*
for (int i = 0; i < 8; i++) { if (i % 2 == 0) { for (int j = 0; j < 4 + i; j++) { System.out.print(" "); } for (int j = 0; j < 5 - i; j++) { System.out.print(" *"); } System.out.println(); } } } }
主要是你要理解思想就好理解了,分两部分 首先搞清楚每次循环打印*的个数,上半部分是先打1个,然后是3个,然后是5个,然后是7个。下半部分是5个,3个,1个。至于那些9,8,5,4那些数字,都是拼凑起来打印空格的,决定图形的对齐方式。
代码里唯一的注释是错的,第一次实际上是打了9个空格,第二次是7个,第三次是5个,最后是3个。下半部分写的有点乱。上半部分打印的是*加空格,下半部分打印的是空格加*,完全是为了拼凑出来的。你可以自己改改,不懂再问。
3. 编写java程序,应用for循环打印菱形。
import java.util.Scanner;
public class v {
public static void main(String[] args) {
int h=1;
while(h<5){ //可重复执行5次
System.out.println("请输入菱形的行数:"); //输入你所需要的行数,也就是最多的那行的的个数
Scanner scanner = new Scanner(System.in);
int j=scanner.nextInt();
if(j%2==0) { // 判断输入的是否为偶数
System.out.println("由于输入的是偶数,现已+1转换成奇数!");
j=j+1; //如果是,+1转换为奇数
}
int i,y,data1,data2;
for (i=1;i<=j;i++){
if(i<=(j+1)/2)
{data1=-i+(j+1)/2;
data2=i+(j+1)/2;}
else
{data1=i-(j+1)/2;
data2=-i+3*(j+1)/2;}
for ( y=1;y<=j;y++)
{ if(y<=data1||y>=data2)
System.out.print(" ");
else
System.out.print("*");}
System.out.println();
} h++;}
}
}
这个你可以随便输入大小。。。希望能够采纳。。。