/**
* 输出各种三角形,菱形,正方形
* @author young
*
*/
public class TrianglePrint {
// 空心直角
public static void kxzj() {
for (int i = 0; i < 6; i++) {
for (int j = 0; j <= i; j++) {
if (i != 5) {
if (j == 0 || j == i) {
System.out.print("*");
} else {
System.out.print(" ");
}
} else {
System.out.print("*");
}
}
System.out.println();
}
}
// 等边
public static void db() {
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= 5 - i; j++) {
System.out.print(" ");
}
if (i != 5) {
for (int k = 1; k <= 2 * i - 1; k++) {
if (k == 1 || k == 2 * i - 1) {
System.out.print("*");
} else {
System.out.print(" ");
}
}
} else {
for (int k = 1; k <= 2 * i - 1; k++) {
if (k % 2 != 0) {
System.out.print("*");
} else {
System.out.print(" ");
}
}
}
System.out.println();
}
}
// 正三角
public static void p1() {
int n = 5;
int a = 0;
int b = 0;
for (int i = 1; i <= n; i++) {
if (a != (n - i)) {
System.out.print(" ");
a++;
i = i - 1;
} else if (b != (2 * i - 1)) {
System.out.print("*");
b++;
i = i - 1;
} else if (a == (n - i) && b == (2 * i - 1)) {
System.out.println();
a = 0;
b = 0;
}
}
}
// 倒三角
public static void p2() {
int n = 5;
int a = 0;
int b = 0;
for (int i = n; i >= 1; i--) {
if (a != (n - i)) {
System.out.print(" ");
a++;
i = i + 1;
} else if (b != (2 * i - 1)) {
System.out.print("*");
b++;
i = i + 1;
} else if (a == (n - i) && b == (2 * i - 1)) {
System.out.println();
a = 0;
b = 0;
}
}
}
// 倒三角:用户决定行数
public static void sta(int n) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < i; j++) {
System.out.print(" ");
}
for (int k = 0; k < 2 * (n - i) - 1; k++) {
System.out.print("*");
}
System.out.println();
}
}
// 输出正方形
public static void zf(int N) {
for (int i = 1; i <= N; i++) {
for (int j = 1; j <= N; j++) {
if (j == 1 || j == N || i == 1 || i == N)
System.out.print("*");
else
System.out.print(" ");
}
System.out.println();
}
}
// 输出正菱形
public static void lx(int n) {
for (int i = 0; i < n - 1; i++) {
for (int x = i + 1; x < n; x++) {
System.out.print(" ");
}
for (int y = 0; y < (i + 1) * 2 - 1; y++) {
System.out.print("*");
}
System.out.println();
}
for (int i = 0; i < n; i++) {
for (int x = 0; x < i; x++) {
System.out.print(" ");
}
for (int y = i; y < 2 * n - i - 1; y++) {
System.out.print("*");
}
System.out.println();
}
}
public static void main(String[] args) {
kxzj();
System.out.println("------------");
db(); // 等边三角
System.out.println("------------");
p1(); // 正三角
System.out.println("------------");
p2(); // 倒三角
System.out.println("------------");
sta(5); // 倒三角
System.out.println("------------");
zf(5); // 正方形
System.out.println("------------");
lx(6); // 菱形
}
}
for(int a = 3; a <=4; a--)这一句就错了……
你执行a--每次都判定a<=4成功,循环无限执行
事例如下:
/**
* 输出各种三角形,菱形,正方形
* @author young
*
*/
public class TrianglePrint {
// 空心直角
public static void kxzj() {
for (int i = 0; i < 6; i++) {
for (int j = 0; j <= i; j++) {
if (i != 5) {
if (j == 0 || j == i) {
System.out.print("*");
} else {
System.out.print(" ");
}
} else {
System.out.print("*");
}
}
System.out.println();
}
}
// 等边
public static void db() {
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= 5 - i; j++) {
System.out.print(" ");
}
if (i != 5) {
for (int k = 1; k <= 2 * i - 1; k++) {
if (k == 1 || k == 2 * i - 1) {
System.out.print("*");
} else {
System.out.print(" ");
}
}
} else {
for (int k = 1; k <= 2 * i - 1; k++) {
if (k % 2 != 0) {
System.out.print("*");
} else {
System.out.print(" ");
}
}
}
System.out.println();
}
}
// 正三角
public static void p1() {
int n = 5;
int a = 0;
int b = 0;
for (int i = 1; i <= n; i++) {
if (a != (n - i)) {
System.out.print(" ");
a++;
i = i - 1;
} else if (b != (2 * i - 1)) {
System.out.print("*");
b++;
i = i - 1;
} else if (a == (n - i) && b == (2 * i - 1)) {
System.out.println();
a = 0;
b = 0;
}
}
}
// 倒三角
public static void main() {
int n = 5;
int a = 0;
int b = 0;
for (int i = n; i >= 1; i--) {
if (a != (n - i)) {
System.out.print(" ");
a++;
i = i + 1;
} else if (b != (2 * i - 1)) {
System.out.print("*");
b++;
i = i + 1;
} else if (a == (n - i) && b == (2 * i - 1)) {
System.out.println();
a = 0;
b = 0;
}
}
}
// 倒三角:用户决定行数
public static void sta(int n) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < i; j++) {
System.out.print(" ");
}
for (int k = 0; k < 2 * (n - i) - 1; k++) {
System.out.print("*");
}
System.out.println();
}
}
// 输出正方形
public static void zf(int N) {
for (int i = 1; i <= N; i++) {
for (int j = 1; j <= N; j++) {
if (j == 1 || j == N || i == 1 || i == N)
System.out.print("*");
else
System.out.print(" ");
}
System.out.println();
}
}
// 输出正菱形
public static void lx(int n) {
for (int i = 0; i < n - 1; i++) {
for (int x = i + 1; x < n; x++) {
System.out.print(" ");
}
for (int y = 0; y < (i + 1) * 2 - 1; y++) {
System.out.print("*");
}
System.out.println();
}
for (int i = 0; i < n; i++) {
for (int x = 0; x < i; x++) {
System.out.print(" ");
}
for (int y = i; y < 2 * n - i - 1; y++) {
System.out.print("*");
}
System.out.println();
}
}
public static void main(String[] args) {
kxzj();
System.out.println("------------");
db(); // 等边三角
System.out.println("------------");
p1(); // 正三角
System.out.println("------------");
main(); // 倒三角
System.out.println("------------");
sta(5); // 倒三角
System.out.println("------------");
zf(5); // 正方形
System.out.println("------------");
lx(6); // 菱形
}
}