一.直角菱形
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
System.out.println("请输入要打印的行数:");
int num = input.nextInt();
t1(num);
}
//正直角
/*
*
**
***
****
*****
*/
public static void t1(int num) {
for (int i = 1; i <= num; i++) {
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
System.out.println();
}
}
方法二.
for(int i = 1;i<=5;i++){
for(int j = 1;j<=5;j++){
//System.out.print("*");
//判断某一些位置打*
if(j>=1&&j<=i){
System.out.print("*");
}
}
System.out.println();
}
矩阵的方法
二.倒直角
1.左到直角
import java.util.Scanner;
public class lingxing
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
System.out.println("请输入要打印的行数:");
int num = input.nextInt();
t2(num);
}
/*倒三角
*****
****
***
**
*
*/
public static void t2(int num) {
for (int i = 1; i <= num; i++) {
for (int j = 1; j <= num - i + 1; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
2.右倒直角
public class Demo3{
public static void main(String [] args){
/*for(int i = 1;i<=5;i++){//行数
//空格
for(int j = 1;j<=i-1;j++){
System.out.print(" ");
}
//*
for(int j = 1;j<=6-i;j++){
System.out.print("*");
}
System.out.println();
}*/
int row = 10;
for(int i = 1;i<=row;i++){
for(int j = 1;j<=row;j++){
//System.out.print("*");
if(j>=i){
System.out.print("*");
}else{
System.out.print(" ");
}
}
System.out.println();
}
}
}
三.等腰直角(正的和倒的)
import java.util.Scanner;
public class lingxing
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
System.out.println("请输入要打印的行数:");
int num = input.nextInt();
t3(num);
System.out.println();
t4(num);
System.out.println();
t5(num);
}
private static void t3(int num) {
for (int i = 1; i <= num; i++) {
for (int j = 1; j <= num - i; j++) {
System.out.print(" ");
}
for (int j = 1; j <= 2 * i - 1; j++) {
System.out.print("*");
}
System.out.println();
}
}
private static void t5(int num) {
for (int i = num; i > 0; i--) {
for (int j = 1; j <= num - i; j++) {
System.out.print(" ");
}
for (int j = 1; j <= 2 * i - 1; j++) {
System.out.print("*");
}
System.out.println();
}
}
private static void t4(int num) {
for (int i = 1; i <= num; i++) {
for (int j = 1; j <= i - 1; j++) {
System.out.print(" ");
}
for (int j = 1; j <= 2 * (num - i) + 1; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
四.实心菱形
方法一.
import java.util.Scanner;
public class Demo4{
public static void main(String [] args){
System.out.println("请输入一个奇数");
Scanner sc = new Scanner(System.in);
int row = sc.nextInt();//行数
if(row%2==0){
System.out.println("请输入奇数!");
//return;//返回,结束方法
//continue;结束本次循环,进行下一次 goto
//break;结束switch for
}
int center = row/2+1;//最中间的位置
int start = center;//起始位置
int end = center;//结束位置
boolean flag = true ; //上部分
for(int i = 1;i<=row;i++){
for(int j = 1;j<=row;j++){
//System.out.print("*");
if(j>=start&&j<=end){//某些位置
System.out.print("*");
}else{
System.out.print(" ");
}
}
System.out.println();
//进入下部分
if(end==row){
flag = false;
}
//打印完成一行之后,开始和结束有变化
if(flag){//上部分
start--;
end++;
}else{//下部分
start++;
end--;
}
}
}
}
方法二:
public class star{
public static void main(String[] args)
{
star1(3);//打印菱形方法1
}
private static void star1(int num) {
// 上半部分
for (int i = 1; i <= num; i++) {
for (int j = 1; j <= num - i; j++) {
System.out.print(" ");
}
for (int j = 1; j <= 2 * i - 1; j++) {
System.out.print("*");
}
System.out.println();
}
// 下半部分
for (int i = 1; i <= num - 1; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(" ");
}
for (int j = 1; j <= 2 * (num - 1 - i) + 1; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
方法三:
public class star1 {
public static void main(String[] args) {
llinxing();
}
public static void llinxing()
{
int n=3;
for(int i=0;i<n;i++){
for(int j=0;j<2*n;j++){
if(j<n-i)
System.out.print(" ");
if(j>=n-i && j<=n+i)
System.out.print("*");
}
System.out.println();
}
for(int i=1;i<n;i++){
System.out.print(" ");
for(int j=0;j<2*n-i;j++){
if(j<i)
System.out.print(" ");
if(j>=i && j<2*n-i-1)
System.out.print("*");
}
System.out.println();
}
}
}
四.空心菱形
import java.util.Scanner;
public class lingxing
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
System.out.println("请输入要打印的行数:");
int num = input.nextInt();
t7(num);
System.out.println();
t8(num);
System.out.println();
t9(num);
}
private static void t9(int num) {
for (int k = 1; k <= num; k++) {
for (int i = 1; i <= (num - k); i++) {
System.out.print(" ");
}
System.out.print("*");
for (int i = 1; i <= ((k - 2) * 2 + 1); i++) {
System.out.print(" ");
}
if (k != 1) {
System.out.print("*");
}
System.out.println();
}
for (int k = num-1; k >= 1; k--) {
for (int i = 1; i <= (num - k); i++) {
System.out.print(" ");
}
System.out.print("*");
for (int i = 1; i <= ((k - 2) * 2 + 1); i++) {
System.out.print(" ");
}
if (k != 1) {
System.out.print("*");
}
System.out.println();
}
}
private static void t8(int num) {
// 上半部分
for (int i = 1; i <= num; i++) {
// 打印上半部分空格
for (int j = 1; j <= num - i; j++) {
System.out.print(" ");
}
// 打印原本实心的*部分
for (int j = 1; j <= 2 * i - 1; j++) {
// 仅在一行的开头和末尾打印*
if (j == 1 || j == 2 * i - 1) {
System.out.print("*");
} else {
System.out.print(" ");
}
}
System.out.println();
}
// 下半部分
for (int i = 1; i <= num - 1; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(" ");
}
for (int j = 1; j <= 2 * (num - i - 1) + 1; j++) {
if (j == 1 || j == 2 * (num - i - 1) + 1) {
System.out.print("*");
} else {
System.out.print(" ");
}
}
System.out.println();
}
}
private static void t7(int num) {
// 打印上半部分
for (int i = 1; i <= num; i++) {
// 打印空格
for (int j = 1; j <= (num - i); j++) {
System.out.print(" ");
}
// 打印*的个数
if (i == 1) {
System.out.print("*");
} else {
System.out.print("*");
// 打印菱形里的空格
for (int j = 1; j <= (2 * i - 3); j++) {
System.out.print(" ");
}
System.out.print("*");
}
System.out.println();
}
// 打印下半部分
for (int i = num - 1; i > 0; i--) {
// 打印空格
for (int j = 1; j <= (num - i); j++) {
System.out.print(" ");
}
// 打印*的个数
if (i == 1) {
System.out.print("*");
} else {
System.out.print("*");
// 打印菱形里的空格
for (int j = 1; j <= (2 * i - 3); j++) {
System.out.print(" ");
}
System.out.print("*");
}
System.out.println();
}
}
}