java循环的for基础问题
问题描述:
初学者,学到循环。
就是有什么比这个简单的方法,输出菱形,感觉我这个很麻烦。
答
/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
// your code goes here
for (int a=1; a<=5; a++) {
for (int b=a;b<5+a;b++) System.out.print(b >= 5 ? "* " : " ");
System.out.println();
}
for (int a=1; a<=4; a++) {
for (int b=0;b<a;b++) System.out.print(" ");
for (int b=a;b<5;b++) System.out.print("* ");
System.out.println();
}
}
}
答
这种方式就简单,如果用其他的方法也能出来,但就麻烦了
答
有意思;
public static void main(String[] args) {
int size = 7;
int limit = (size - 1) / 2;
for (int i = 0; i < size; i++)
{
String _temp = (newString(" ", Math.abs(limit)) + newString("*", size - Math.abs(limit) * 2));
System.out.println(_temp);
limit--;
}
}
public static String newString(String init, int length){
String tmp = "";
for (int i = 0; i < length; i++)
{
tmp += init;
}
return tmp;
}
答
http://localhost:8080/DownWeb/FileManager?filename=girl.jpg
答
从复杂度上讲,我这个也是最简单了,个人感觉而且更好理解!
int length = 16;
for (int a = 1; a <= length; a++)
{
int m = Math.Abs(length / 2 + 1 - a);//m为菱形左侧的空格数
for (int b = 1; b <= length - m; b++)
{
//是否在菱形区域菱形区域
if (b > m && b < length + 1 - m)
{
//根据菱形边缘部分一定输出"*"的特点,判断区域其他部分输出"*"或" "
System.out.print(b % 2 == (m + 1) % 2 ? "*" : " ");
}
else
{
//菱形左侧侧输出" "
System.out.print(" ");
}
}
System.out.println();
}
答
for (int a=1; a<=5; a++) {
for (int b=a;b= 5 ? "* " : " ");
System.out.println();
}
for (int a=1; a<=4; a++) {
for (int b=0;b<a;b++) System.out.print(" ");
for (int b=a;b<5;b++) System.out.print("* ");
System.out.println();
}
for 内置方法