黑马程序员技术交流社区
标题:
for循环怎么打出菱形?
[打印本页]
作者:
PinkDay
时间:
2014-10-21 00:03
标题:
for循环怎么打出菱形?
菱形怎么用for循环打出来啊?
一个人单机打代码好痛苦...
作者:
cxdzh
时间:
2014-10-21 00:07
class getPrism
{
public static void main(String[] args)
{
prism(80);
}
public static void prism(int hangShu)
{
if (hangShu<3||hangShu>80)
{
System.out.println("你要输出的菱形行数超出可执行范围!");
return;
}
//hangShu这个变量代表要输出的菱形总行数..修改此变量即可输出不同行数的菱形.
int shangHangShu=hangShu/2+hangShu%2;//判断尖角朝上部分的行数,总行数除以2,如果总行数是单数,上面多输出一行.
int xiaHangShu=hangShu/2;//尖角朝下部分的行数.
for (int i=1;i<=shangHangShu;i++ )//从1开始循环,输出上半部分.
{
for(int j=0;j<shangHangShu-i;j++)//先打印空格,因为尖角朝上,总行数减去当前行数即为要打印的空格数.
System.out.print(" ");
for(int h=1;h<=i*2-1;h++)//第1行1颗星,第2行3颗,第3行5颗,即每行打印数为:(行数*2-1)颗
System.out.print("*");
System.out.println("");//一行打印完换行.
}
for (int i=xiaHangShu;i>0;i-- )//输出尖角下半部分.
{
for(int j=xiaHangShu;j>i-hangShu%2;j--)//下半部分空格打印次数=行数,但如果总行数是双数,则空格打印次数=行数-1
System.out.print(" ");
for(int h=i*2-1;h>0;h--)//每行打印星星次数与上半部分相反.
System.out.print("*");
System.out.println("");
}
}
}
复制代码
作者:
FlyFish
时间:
2014-10-22 09:59
public static void print(int x,int y)
{
for(int a=0;a<x;a++)
{
for(int b=0;b<=a;b++)
{
System.out.print(" ");
}
for(int c=0;c<y;c++)
{
System.out.print("*");
}
System.out.println();
}
想打几行打几行……
作者:
void
时间:
2014-10-22 10:35
Google一下你就知道
作者:
zjy519893509
时间:
2014-10-22 12:59
这个问题类似于杨辉三角、先贴代码吧
public class test111 {
//private Formatter f=new Formatter(System.out);
/**
* @param args
*/
public static void printf(int n){
for(int i=n;i>-n-1;i--){
String str1="";
String str2="";
if(Math.abs(i)!=0){
str1=Math.abs(i)+2*n+"";
}else{
str1=2*n+"";
}
if((n-Math.abs(i))*2!=0){
str2=(n-Math.abs(i))*2+1+"";
}
String format="%"+str1+"s%"+str2+"s\n";
System.out.printf(format,"s","s");
}
}
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
System.out.println("请输入菱形大小:");
int n=in.nextInt();
test111.printf(n);
}
}
复制代码
程序主要控制的是左侧的空格和中间的空格输出。
为了保证输出一个菱形,for 循环我把它定位n到-n,通过动态的合成一个formate字符串来控制样式的输出。
由于java不允许有%0S的样式输出,所以在合成时通过if语句将其规避了。
提示:%nS 当n为正值时,会在左边添加空格,为负值会在右边添加空格。
QQ截图20141022123638.png
(827 Bytes, 下载次数: 42)
下载附件
2014-10-22 12:36 上传
作者:
mingtianrsm
时间:
2014-10-22 18:18
菱形就是一个正三角形和一个倒三角形弄一块儿了,只要你会打三角形,就可以拼出菱形了。如果都不会的话,就在纸上画一个小的找规律就行了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2