如何在Java中打印图案
Java模式程序可以增强编码技能,逻辑和循环概念。在
Java访谈中,通常要求检查程序员的逻辑和思维。我们可以用不同的设计打印
Java模式程序。要学习模式程序,我们必须对Java循环有深入的了解,例如
for 循环
do-while 循环。在本部分中,我们将学习
如何在Java中打印模式。
我们已经将
Java模式程序分为三类:
起始符
数字模式
字符模式
在转到模式程序之前,让我们看一下方法。
每当您为模式程序设计逻辑时,首先在块中绘制该模式,如下所示图片。该图清楚地显示了该模式。
每个模式程序都有两个或两个以上的循环。循环数取决于模式或逻辑的复杂性。第一个for循环适用于行,第二个循环适用于列。在模式程序中,
Java for 循环被广泛使用。
在上述模式中,
行用
i 表示,
列用
j 表示。我们看到第一行只打印一个星星。第二行打印两个星星,依此类推。
彩色块打印
空格。
让我们为模式创建逻辑,如上所示。在下面的代码段中,我们从0开始的行和列值。我们也可以从1开始的行,这是您的选择。
for(int i=0;i<row;i++){
for(int j=0;j<=i;j++){
System.out.print("* ");
}
System.out.println();
在上面的代码段中,第一个for循环用于行,第二个for循环用于列。
让我们逐步查看代码的执行,
n = 4 (我们要打印的行数)。
迭代1:
for i=0, 0<4 (true)
for j=0, j<=0 (true)
第一条
print 语句在第一行打印一个星号,第二条
println 语句打印空格并将光标移到下一行。
现在i和j的值增加到1。
迭代2:
for i=1, 1< 4 (true)
for j=1, 1< =1 (true)
第一条
print 语句在第二行打印两个星星,第二条
println 语句打印空格并将光标移到下一行。
现在i和j的值增加到2。
迭代3:
for i=2, 2<4 (true)
for j=2, 2<=2 (true)
第一条
print 语句在第三行打印三颗星,第二条
println 语句打印空格并将光标置于下一行。
现在i和j的值增加到3。
迭代4:
for i=3, 3<4 (true)
for j=3, 3<=3 (true)
第一条
print 语句在第四行打印四颗星,第二条
println 语句打印空格并将光标置于下一行。
现在i和j的值增加到4。
当i的值等于行数时,程序的执行将终止。
星型
1、直角三角形图案
public class RightTrianglePattern {
public static void main(String args[]) {
int i, j, row=6;
for(i=0;i<row;i++) {
//inner loop for columns
for(j=0;j<=i;j++) {
//prints stars
System.out.print("* ");
}
//throws the cursor in a new line after printing each line
System.out.println();
}
}
}
输出:
2、左三角形星型
public class LeftTrianglePattern{
public static void main(String args[]) {
int i, j, row = 6;
for (i=0;i<row;i++) {
//inner loop work for space
for (j=2*(row-i);j>=0;j--) {
System.out.print(" ");
}
//inner loop for columns
for (j=0;j<=i;j++ ) {
//prints star
System.out.print("* ");
}
//throws the cursor in a new line after printing each line
System.out.println();
}
}
}
输出:
3、金字塔星型
public class PyramidPattern{
public static void main(String args[]) {
int i, j, row = 6;
for (i=0;i<row;i++) {
for (j=row-i;j>1;j--) {
//prints space between two stars
System.out.print(" ");
}
for (j=0;j<=i;j++ ) {
//prints star
System.out.print("* ");
}
System.out.println();
}
}
}
输出:
4、菱形图案
import java.util.Scanner;
public class DiamondPattern{
public static void main(String args[]){
int row, i, j, space = 1;
System.out.print("Enter the number of rows you want to print: ");
Scanner sc = new Scanner(System.in);
row = sc.nextInt();
space = row - 1;
for (j = 1;j= row;j++){
for (i = 1;i<= space;i++){
System.out.print(" ");
}
space--;
for (i = 1;i <= 2 * j - 1;i++){
System.out.print("*");
}
System.out.println("");
}
space = 1;
for (j = 1;j<= row - 1;j++){
for (i = 1;i<= space;i++){
System.out.print("");
}
space++;
for (i = 1;i<= 2 * (row - j) - 1;i++){
System.out.print("*");
}
System.out.println("");
}
}
}
输出:
5、向下三角形星型
public class DownwardTrianglePattern{
public static void main(String[] args){
int rows=7;
//inner loop
for (int i= rows-1;i>=0 ;i--){
//outer loop
for (int j=0;j<=i;j++){
//prints star and space
System.out.print("*" + " ");
}
//throws the cursor in the next line after printing each line
System.out.println();
}
}
}
输出:
6、镜像的直角三角形星型
public class MirroredRightTrianglePattern {
public static void main(String[] args){int n=7;
//inner loop
for (int i= 0;i<= n;i++){
//outer loop
for (int j=1;j<=n-i;j++){
System.out.print(" ");
}
for (int k=0;k<=i;k++){
System.out.print("*");
}
System.out.println("");
}
}
}
输出:
7、反金字塔星型
public class ReversePyramidPattern{
public static void main(String[] args){
int rows=8;
for (int i= 0;i<= rows-1;i++){
for (int j=0;j<=i;j++){
System.out.print(" ");
}
for (int k=0;
k<=rows-1-i;k++){
System.out.print("*" + " ");
}
System.out.println();
}
}
}
输出:
8、右下镜星图
public class RightDownMirrorPattern{
public static void main(String args[]){
int row=7;
for (int i= row;i>= 1;i--){
for (int j=row;j>i;j--){
System.out.print(" ");
}
for (int k=1;k<=i;k++){
System.out.print("*");
}
System.out.println("");
}
}
}
输出:
9、右帕斯卡的三角形
import java.util.Scanner;
public class RightPascalTrianglePattern{
public static void main(String[] args){
int i, j, rows;
Scanner sc = new Scanner(System.in);
System.out.print("Enter the number of rows you want to print: ");
rows = sc.nextInt();
for (i= 0;i<= rows-1;i++){
for (j=0;j<=i;j++) {
System.out.print("*"+ " ");
}
System.out.println("");
}
for (i=rows-1;i>=0;i--){
for(j=0;j <= i-1;j++){
System.out.print("*"+ " ");
}
System.out.println("");
}
}
}
输出:
10、左帕斯卡三角洲
import java.util.Scanner;
public class LeftPascalTrianglePattern{
public static void main(String[] args){
int i, j, k, rows;
Scanner sc = new Scanner(System.in);
System.out.print("Enter the number of rows you want to print: ");
rows = sc.nextInt();
for (i= 1;i<= rows ;i++){
for (j=i;j <rows ;j++) {
System.out.print(" ");
}
for (k=1;k<=i;k++) {
System.out.print("*");
}
System.out.println("");
}
for (i=rows;i>=1;i--){
for(j=i;j<=rows;j++){
System.out.print("");
}
for(k=1;k<i;k++) {
System.out.print("*");
}
System.out.println("");
}
sc.close();
}
}
输出:
11、沙漏星型
import java.util.Scanner;
public class SandglassPattern{
public static void main(String[] args){
int i, j, k, n;
Scanner sc = new Scanner(System.in);
System.out.print("Enter the number of rows you want to print: ");
n = sc.nextInt();
for (i= 0;i<= n-1 ;i++){
for (j=0;j<i;j++){
System.out.print(" ");
}
for (k=i;k<=n-1;k++) {
System.out.print("*" + " ");
}
System.out.println("");
}
for (i= n-1;i>= 0;i--){
for (j=0;j<i;j++){
System.out.print("");
}
for (k=i;k<=n-1;k++){
System.out.print("*" + " ");
}
System.out.println("");
}
sc.close();
}
}
输出:
12、字母星型
import java.util.*;
public class AlphabetPattern{
public static void main(String[] args){
int i, j, n=8;
for (i = 0;i<=n;i++) {
for (j = 0;j<= n / 2;j++) {
if ((j == 0 || j == n / 2) && i != 0 || i == 0 &&j != n / 2 || i == n / 2)
System.out.print("*");
else
System.out.print(" ");
}
System.out.println();
}
}
}
输出:
13、三角形星型
import java.util.Scanner;
public class TrianglePattern{
public static void main(String[] args){
int i, j, k, rows=9;
for (i=1;i<= rows ;i++){
for (j = i;j <rows ;j++) {
System.out.print(" ");
}
for (k = 1;k <= (2*i -1) ;k++) {
if(k==1 || i == rows || k==(2*i-1)) {
System.out.print("*");
}
else {
System.out.print("");
}
}
System.out.println("");
}
}
}
输出:
14、下三角图案
import java.util.Scanner;
public class DownTrianglePattern{
public static void main(String[] args){
int i, j, k, rows=9;
for (i=rows;i>= 1 ;i--){
for (j = i;j<rows ;j++) {
System.out.print(" ");
}
for (k = 1;k <= (2*i -1) ;k++) {
if( k==1 || i == rows || k==(2*i-1)) {
System.out.print("*");
}
else {
System.out.print("");
}
}
System.out.println("");
}
}
}
输出:
15、钻石星形图案
import java.util.*;
public class DiamondPattern{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("Enter the number of rows you want to print: ");int rows = sc.nextInt();
for (i=1;i<= rows ;i++) {
for (j = rows;j >i ;j--) {
System.out.print(" ");
}
System.out.print("*");
for (k = 1;k <2*(i -1) ;k++) {
System.out.print("");
}
if( i==1) {
System.out.println("");
}
else{
System.out.println("*");
}
}
for (i=rows-1;i>= 1 ;i--){
for (int j = rows;j >i ;j--) {
System.out.print("");
}
System.out.print("*");
for (int k = 1;k <2*(i -1);k++) {
System.out.print("");
}
if(i==1)
System.out.println("");
else
System.out.println("*");
}
}
}
输出:
数字模式
1、模式1
public class Pattern1{
public static void main(String args[]) {
int i, j,number, n=7;
for(i=0;i<n;i++){
number=1;
for(j=0;j<=i;j++){
//prints num
System.out.print(number+ " ");
//incrementing the value of number
number++;
}
//throws the cursor at the next line after printing each row
System.out.println();
}
}
}
输出:
2、模式2
public class Pattern2{
public static void main(String[] args) {
int i, j, k = 1;
//inner loop
for (i = 1;i <= 7;i++) {
//outer loop
for (j = 1;j<i + 1;j++) {
//prints the value of k
System.out.print(k++ + " ");
}
//throws the cursor at the next line
System.out.println();
}
}
}
输出:
3、模式3
public class Pattern3{
public static void main(String[] args) {int n = 8;
//n is the number of rows you want to print
for (int i = 0;i <n;i++) {
int number = 1;
System.out.printf("%" + (n - i) * 2 + "s", "");
for (int j = 0;j <= i;j++) {
System.out.printf("%4d", number);
number = number * (i - j) / (j + 1);
}
System.out.println();
}
}
}
输出:
4、模式4
public class Pattern4{
public static void main(String[] args) {
for (int i = 1;i <= 4;i++){
int n = 8;
for (int j = 1;j<= n - i;j++) {
System.out.print(" ");
}
for (int k = i;k >= 1;k--){
System.out.print(k);
}
for (int l = 2;l <= i;l++) {
System.out.print(l);
}
System.out.println();
}
for (int i = 3;i >= 1;i--){
int n = 10;
for (int j = 0;j<= n - i;j++) {
System.out.print("");
}
for (int k = i;k >= 1;k--){
System.out.print(k);
}
for (int l = 2;l <= i;l++){
System.out.print(l);
}
System.out.println();
}
}
}
输出:
5、模式5
import java.util.*;
public class Pattern5{
public static void main(String[] args) {
int i, j, rows;
Scanner sc = new Scanner(System.in);
System.out.print("Enter the number of rows you want to print: ");
rows = sc.nextInt();
for (i = 1;i <= rows;i++) {
for (j = 1;j <= i;j++){
System.out.print(i+" ");
}
System.out.println();
}
}
}
输出:
6、模式6
import java.util.*;
public class Pattern6{
public static void main(String[] args){
int i, j, rows;
Scanner sc = new Scanner(System.in);
System.out.print("Enter the number of rows youy want to print: ");
rows = sc.nextInt();
for (i = rows;i >= 1;i--){
for (j = rows;j >= i;j--){
System.out.print(j+" ");
}
System.out.println();
}
}
}
输出:
7、模式7
import java.util.Scanner;
public class Pattern7{
public static void main(String[] args) {
int i, j, n;
Scanner sc = new Scanner(System.in);
System.out.print("Enter the number of rows you want to print: ");
n = sc.nextInt();
for (i = 1;i <= n;i++) {
for (j = i;j >= 1;j--){
System.out.print(j+" ");
}
System.out.println();
}
}
}
输出:
8、模式8
public class Pattern8{
public static void main(String[] args) {
int rows=9;
//number of rows to print
for (int i = 1;i <= rows;i++) {
int num;
if(i%2 == 0){
num = 0;
for (int j = 1;j <= rows;j++){
System.out.print(num);
num = (num == 0)? 1 : 0;
}
}
else{
num = 1;
for (int j = 1;j <= rows;j++){
System.out.print(num);
num = (num == 0)? 1 : 0;
}
}
System.out.println();
}
}
}
输出:
9、模式9
import java.util.Scanner;
public class Pattern9{
public static void main(String[] args) {
int i, j, rows=9;
for (i = 1;i <= rows;i++) {
for (j = 1;j <= i;j++){
if(j%2 == 0){
System.out.print(0);
}
else{
System.out.print(1);
}
}
System.out.println();
}
}
}
输出:
10、模式10
public class Pattern10{
public static void main(String[] args) {
int n = 10;
for (int i = 1;i <= n;i++) {
for (int j = 1;j <i;j++) {
System.out.print(" ");
}
for (int k = i;k <= n;k++) {
System.out.print(k+" ");
}
System.out.println();
}
for (int i = n-1;i >= 1;i--) {
for (int j = 1;j <i;j++) {
System.out.print("");
}
for (int k = i;k <= n;k++){
System.out.print(k+" ");
}
System.out.println();
}
}
}
输出:
11、模式11
public class Pattern11{
public static void main(String[] args) {
int rows=8;
//Prints upper half pattern
for (int i = 1;i <= rows;i++) {
for (int j = 1;j <= i;j++) {
System.out.print(j+" ");
}
System.out.println();
}
//prints lower half pattern
for (int i = rows-1;i >= 1;i--){
for (int j = 1;j <= i;j++){
System.out.print(j+" ");
}
System.out.println();
}
}
}
输出:
12、模式12
public class Pattern12{
public static void main(String[] args) {
int rows=9;
for (int i = 1;i <= rows;i++) {
for (int j = rows;j >= i;j--){
System.out.print(j+" ");
}
System.out.println();
}
}
}
输出:
13、模式13
public class Pattern14{
public static void main(String[] args) {
int i, j, rows=9;
for (i = rows;i >= 1;i--) {
for (j = 1;j <= i;j++){
System.out.print(j+" ");
}
System.out.println();
}
}
}
输出:
14、模式14
public class Pattern14{
public static void main(String[] args) {
int rows=7, i, j;
for (i = rows;i >= 1;i--) {
for (j = i;j >= 1;j--){
System.out.print(j+" ");
}
System.out.println();
}
}
}
输出:
15、模式15
public class Pattern15{
public static void main(String[] args) {
int i, j, rows=9;
for (i = 1;i <= rows;i++) {
//Prints first half of the row
for (j = 1;j <= i;j++) {
System.out.print(j+" ");
}
//Prints second half of the row
for (j = i-1;j >= 1;j--){
System.out.print(j+" ");
}
System.out.println();
}
}
}
输出:
16、模式16
public class Pattern16{
public static void main(String[] args) {
int i, j, rows=9;
//Prints upper half pattern
for (i = rows;i >= 1;i--) {
for (j = 1;j <= i;j++){
System.out.print(j+" ");
}
System.out.println();
}
//Prints lower half pattern
for (i = 2;i <= rows;i++) {
for (j = 1;j <= i;j++){
System.out.print(j+" ");
}
System.out.println();
}
}
}
输出:
17、模式17
public class Pattern17{
public static void main(String[] args) {
int rows=9;
//Prints upper half pattern
for (int i = 1;i <= rows;i++) {
//Prints i spaces at the beginning of each row
for (int j = 1;j <i;j++) {
System.out.print(" ");
}
//Prints i to rows value at the end of each row
for (int j = i;j <= rows;j++) {
System.out.print(j);
}
System.out.println();
}
//Prints lower half pattern
for (int i = rows-1;i >= 1;i--) {
//Prints i spaces at the beginning of each row
for (int j = 1;j <i;j++) {
System.out.print("");
}
//Prints i to rows value at the end of each row
for (int j = i;j <= rows;j++){
System.out.print(j);
}
System.out.println();
}
}
}
输出:
18、模式18
public class Pattern18{
public static void main(String[] args) {
int rows=8;
for (int i = 1;i <= rows;i++) {
for (int j = 1;j <= rows-i;j++){
System.out.print(1);
}
for (int j = 1;j <= i;j++){
System.out.print(i);
}
System.out.println();
}
}
}
输出:
19、Pattern-19
public class Pattern19{
public static void main(String args[]){
int rows=9;
for (int i = 1;i <= rows;i++) {
int num = i;
for (int j = 1;j <= i;j++) {
System.out.print(num+" ");
num = num+rows-j;
}
System.out.println();
}
}
}
输出:
20、模式20
public class Pattern20{
public static void main(String[] args) {
int i, j, k, rows=9;
for(i=1;i<rows+1 ;i++){
for(j=i;j <rows+1 ;j++){
System.out.print(j + " ");
}
for(k=1;k <i ;k++){
System.out.print(k + " ");
}
System.out.println();
}
}
}
输出:
21、模式21
import java.util.Scanner;
public class Pattern21 {
public static void main(String[] args) {
int i, j, min, n;
System.out.print("Enter the value of n: ");
Scanner sc= new Scanner(System.in);
n=sc.nextInt();
for (i = 1;i <= n;i++) {
for (j = 1;j <= n;j++) {
min = i < j ? i : j;
System.out.print(n - min + 1+ " ");
}
for (j = n - 1;j >= 1;j--) {
min = i <j ? i : j;
System.out.print(n - min + 1+ " ");
}
System.out.println();
}
for (i = n - 1;i >= 1;i--) {
for (j = 1;j <= n;j++) {
min = i <j ? i : j;
System.out.print(n - min + 1+ " ");
}
for (j = n - 1;j >= 1;j--) {
min = i <j ? i : j;
System.out.print(n - min + 1+ " ");
}
System.out.println();
}
}
}
输出:
字符模式
1、直角三角形字母图案
public class RightAlphabaticPattern{
public static void main(String[] args){
int alphabet = 65;
//ASCII value of capital A is 65
for (int i = 0;i <= 8;i++){
for (int j = 0;j <= i;j++){
System.out.print((char) (alphabet + j) + " ");
}
System.out.println();
}
}
}
输出:
2、重复字母模式
public class RepeatingPattern{
public static void main(String[] args){
int letter = 65;
for (int i = 0;i<= 9;i++){
for (int j = 0;j <= i;j++){
//prints the character
System.out.print((char) letter + " ");
}
letter++;
System.out.println();
}
}
}
输出:
3、K形字母图案
public class KshapePattern{
public static void main(String[] args){
for (int i = 8;i >= 0;i--){
int alphabet = 65;
for (int j = 0;j <= i;j++){
System.out.print((char) (alphabet + j) + " ");
}
System.out.println();
}
for (int i = 0;i<= 8;i++){
int alphabet = 65;
for (int j = 0;j <= i;j++){
System.out.print((char) (alphabet + j) + " ");
}
System.out.println();
}
}
}
输出:
4、三角形字符图案
public class TriangleCharacterPattern{
public static void main(String[] args){
for (int i = 0;i <= 8;i++) {
int alphabet = 65;
for (int j = 8;j >i;j--){
System.out.print(" ");
}
for (int k = 0;
k <= i;k++){
System.out.print((char) (alphabet + k) + " ");
}
System.out.println();
}
}
}
输出:
5、菱形字符图案
import java.util.Scanner;
public class DiamondCharacterPattern{
public static void main(String[] args) {
char[] alphabet = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' };
int alphabet _number = 0;
String[] diamond = new String[26];
System.out.print("Enter a Character between A to Z : ");
Scanner reader = new Scanner(System.in);
try {
char user_ alphabet = reader.next("[A-Z]").charAt(0);
for (int i = 0;i <alphabet.length;i++) {
if (letter[i] == user_ alphabet) {
alphabet _number = i;
break;
}
}
for (int i = 0;i <= alphabet _number;i++) {
diamond[i] = "";
for (int j = 0;j <alphabet _number - i;j++) {
diamond[i] += " ";
}
diamond[i] += alphabet
if (alphabet[i] != 'A') {
for (int j = 0;j <2 * i - 1;j++) {
diamond[i] += " ";
}
diamond[i] += alphabet[i];
}
System.out.println(diamond[i]);
}
for (int i = alphabet _number - 1;i >= 0;i--){
System.out.println(diamond[i]);
}
}
catch (Exception e) {
e.printStackTrace();
}
finally {
reader.close();
}
}
}
输出: