黑马程序员技术交流社区
标题:
for循环打印菱形。
[打印本页]
作者:
cyc523633157
时间:
2014-8-8 14:06
标题:
for循环打印菱形。
******************************
* * *
* * * * *
* * * * * * *
* * * * * * * * *
* * * * * * * * * * *
* * * * * * * * * * * * *
* * * * * * * * * * * * * * *
* * * * * * * * * * * * *
* * * * * * * * * * *
* * * * * * * * *
* * * * * * *
* * * * *
* * *
******************************
这个用循环怎么打印出来。
作者:
黄霄仪
时间:
2014-8-8 16:00
本帖最后由 黄霄仪 于 2014-8-8 16:36 编辑
//可变长度的菱形,这应该就是你想要的结果
public class Test {
public static void main(String[] args) {
Test.lingxing(15);
}
public static void lingxing(int n) {
if (n % 2 == 0) {
System.out.println("不能为偶数");
} else {
int u = n / 2 + 1;// 上半部分的行数
//打印上面一排字符*
for(int i=1;i<=n+4;i++){
System.out.print("*");
}
System.out.println();
for (int i = 1; i <= u; i++) {
System.out.print("* ");
// 打印空格
for (int m = 1; m <= u - i; m++) {
System.out.print(" ");
}
// 打印*
for (int j = 1; j <= 2 * i - 1; j++) {
System.out.print("*");
}
//打印后面的空格
for (int m = 1; m <= u - i; m++) {
System.out.print(" ");
}
System.out.println(" *");
}
u = n - u;// 下半部分的行数
for (int i = 1; i <= u; i++) {
System.out.print("* ");
// 打印空格
for (int m = 1; m <= i; m++) {
System.out.print(" ");
}
// 打印*
for (int j = 1; j <= 2 * u + 1 - 2 * i; j++) {
System.out.print("*");
}
//打印后面的空格
for (int m = 1; m <= i; m++) {
System.out.print(" ");
}
System.out.println(" *");
}
//打印下面一排字符*
for(int i=1;i<=n+4;i++){
System.out.print("*");
}
}
}
}
作者:
唐覃利
时间:
2014-8-8 16:04
学习了 。。。
作者:
WJN_YES
时间:
2014-8-8 16:04
我自己做了一下,不知道是不是你想要的,你可以试一下,可能代码的效率不高,不过可以运行出来吧
class lingxing
{
public static void main(String[] args)
{
dayin();
dayin1();
dayin();
}
public static void dayin(){
for(int i=0;i<30;i++){
System.out.print("*");
}
System.out.println();
}
public static void dayin1(){
for(int i=1;i<=7;i++){
System.out.print("*");
for(int j=1;j<15-i;j++){
System.out.print(" ");
}
for(int j=1;j<=2*i-1;j++){
System.out.print("*");
}
for(int k=15-i;k>0;k--){
System.out.print(" ");
}
System.out.print("*");
System.out.println();
}
for(int i=5;i>=0;i--){
System.out.print("*");
for(int j=0;j<13-i;j++){
System.out.print(" ");
}
for(int j=0;j<2*i+1;j++){
System.out.print("*");
}
for(int k=14-i;k>0;k--){
System.out.print(" ");
}
System.out.print("*");
System.out.println();
}
}
}
作者:
Huberry
时间:
2014-8-8 16:29
学习一下
作者:
好男人进化论
时间:
2014-8-8 17:23
学习一下,自己敲看看
作者:
何磊
时间:
2014-8-8 20:03
WJN_YES 发表于 2014-8-8 16:04
我自己做了一下,不知道是不是你想要的,你可以试一下,可能代码的效率不高,不过可以运行出来吧
class lin ...
能介绍下思路就更好了
作者:
WJN_YES
时间:
2014-8-8 20:12
我的思路是首先定义一个方法打印第一行和最后一行的*这个就用for循环,应该没问题吧。
接下来主要的就是打印菱形,我是将菱形分为两个部分上面的7行这里叫做正三角,和下面的6行这里叫做倒三角。
首先说一下正三角,第一层循环是控制行,一共7行,里面的两个循环都是用来控制列的,一个控制空格,一个控制
“*”其实主要就是看列和行的关系,比如第一行有1个*,第二行有3个,以此下去找到了控制*的条件2*i-1,空格的控制就是第一行*号的左边有14个空格,第二行13个空格,所以控制空格的条件就是15-i,综上就是控制空格的条件和循环的结构找对了就没问题了,你可以在看看,可以少弄几行和几列,找找规律理解一下。
作者:
sunny~
时间:
2014-8-8 20:58
这种题目怎么做,唉愁这种题了,没有逻辑思维
作者:
碎流
时间:
2014-8-8 21:31
我晕,学习了,,,,
作者:
继续悲伤
时间:
2014-8-8 21:50
来学习了!!!
作者:
Imp_x
时间:
2014-8-8 21:59
这图形还好点 楼猪可以试下打印一个空心的菱形~ ~ 那个才叫痛苦
作者:
柠萌不
时间:
2014-8-8 22:07
和空心菱形比这个还好了...
作者:
刘小记.
时间:
2014-8-8 22:10
学习学习
作者:
大★宝
时间:
2014-8-9 11:20
知识回顾,自己又敲了一遍
作者:
韶山
时间:
2014-8-9 11:59
学习了,自己练习下
作者:
心之信子
时间:
2014-8-9 21:41
学习一下,自己敲看看
作者:
Justfeeling
时间:
2014-8-9 21:45
方法确实很多
作者:
喂、借个微笑
时间:
2014-8-11 11:07
学习了!
作者:
大成哥
时间:
2014-8-11 11:14
学习了!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2