2017-01-06 64 views
0

我想在java中使用for循环生成以下模式。For循环来生成字符模式

"+-*+-*+-*+" and "+++***------***+++" 

我不知道如何在模式末尾生成最后一个“+”。

我当前的代码如下所示:

int j; 
for(j=0;j<3;++j) { 
     System.out.print("+-*"); 
}  
for(j=0;j<2;++j) { 
     System.out.print("+++***---"); 
} 

我将如何打印第二图案上半年和扭转它来产生上述的模式?

+0

什么是这些模式的源字符串,*之前*你展开它们到你想要的? – usr2564301

回答

-2
for (int i = 0; i < 3; ++i) 
    System.out.print("+-*"); 
System.out.print('+'); 
String s = "+*-*+"; 
for (int i = 0; s[i]; ++i) 
    for (int j = 0; j < 3; ++j) 
     System.out.print(s[i]); 

类似的东西也许 (我没有测试此代码)

0

,在第一个“+ - *”的小观察只有这3个字符或字符串的重复,你可以简单地使用模并解决它

你可以做这样的事情:为第二图案

String pattern1 = "+-*"; 
for(int i=0; i < lengthOfPattern; i++){ 
    System.out.print(pattern1.charAt(i%3)); 
} 

再次可以看到,第一你是打印“+++ *** ---”和然后反过来交替。并且猜测这将继续。再

String pattern2 = "+++***---"; 
for(int i = 0; i < numberOfTimes; i++){ 
    if(i%2==1){ 
     System.out.print(pattern2); 
    }else{ 
     System.out.print(new StringBuilder(pattern2).reverse().toString()); 
    } 
}