[b]Java 根据输入的值动态的画出各种五角星同时控制其大小(利用星号),主要实体的,空心的,平移的,利用for循环对初学者有一定的帮助。可以通过输入n(n>3)动态的控制五角星的大小,下面是完整代码和显示结果[/b]:
public class WJXUtils {
/**
* @param args
*/
public static void main(String[] args) {
//实体五角星
// createWJXS(4);
// 实体五角星平移
// createWJXSY(4,2,1);
//空心五角星移动(星星外面也是空心)
// createWJXKY(4,6,6);
//空心五角星
// createWJXK(6);
//空心外部区域全部显示星星的空心
//createWJXKS(8);
//空心外部区域全部显示星星的空心的五角星平移
createWJXKSY(4,6,7);
}
//K表示区域总共4个,i表示行,j表示列 空心
public static void createWJXK(int n){
int i,i21,i22,i3,i4,j,j2,j21,j22,j3,j4,k=0;
int m2=0;
int m3=0;
for( k=1;k<=4;k++){
//part 1 if(k==1){
for( i=0;i<n;i++){
//最大列数为6*n
for( j=0;j<6*n;j++){
if((j<3*n-i+1&&j>=3*n-i )||(j<=3*n+i&&j>3*n+i-1) ){
System.out.print("*");
}else{
System.out.print(" ");
}
}
System.out.println();
}
}
if(k==2){
//part 2
for(j2=1;j2<=6*n+1;j2++){
if((j2<=2*n+1)||(j2>4*n&&j2<=6*n)){
System.out.print("*");
}else{
System.out.print(" ");
}
}
for( i21=n+1;i21<n+2;i21++){
System.out.println();
for( j21=0;j21<6*n;j21++){
if((j21>=3&&j21<4)||(j21>6*n-4&&j21<=6*n-3)){
System.out.print("*");
}else{
System.out.print(" ");
}
}
}
for( i22=n+2;i22<n+3;i22++){
System.out.println();
for( j22=0;j22<=6*n;j22++){
if((j22>=5&&j22<6)||( j22>6*n-6&&j22<=6*n-5)){
System.out.print("*");
}else{
System.out.print(" ");
}
}
}
}
if(k==3){
//part 3
for( i3=0;i3<n-3;i3++){
System.out.println();
for(j3=0;j3<6*n;j3++){
if((j3>5+m2&&j3<=5+m2+1)||((j3>=6*n-(5+m2)-1)&&j3<(6*n-(5+m2)))){
System.out.print("*");
}else{
//显示该部分中间那个点
if(i3==n-4&&j3==3*n){
System.out.print("*");
}else{
System.out.print(" ");
}
}
}
m2++;
}
}
if(k==4){
//part4
for( i4=0;i4<n-1;i4++){
System.out.println();
for( j4=0;j4<6*n;j4++){
if((j4>=n+1-m3&&j4<n+2-m3)||(j4>=3*n-3-3*m3&&j4<3*n-2-3*m3)||((j4>3*n+2+3*m3)&&j4<=3*n+2+3*m3+1)||(j4>5*n+m3-2&&(j4<=5*n+m3-1))){
System.out.print("*");
}else{
System.out.print(" ");
}
}
m3++;
}
}
}
}
//K表示区域总共4个,i表示行,j表示列 里面空心外面全部实心
public static void createWJXKS(int n){
int i,i21,i22,i3,i4,j,j2,j21,j22,j3,j4,k=0;
int m2=0;
int m3=0;
for( k=1;k<=4;k++){
//part 1 no change
if(k==1){
for( i=0;i<n;i++){
//最大列数为6*n
for( j=0;j<6*n;j++){
if((j<3*n-i+1&&j>=0 )||(j<=6*n&&j>3*n+i-1) ){
System.out.print("*");
}else{
System.out.print(" ");
}