Java 如何使用嵌套for循环制作菱形
所以我被派去用爪哇语做一个带星号的钻石,我真的被难住了。以下是我到目前为止的想法:Java 如何使用嵌套for循环制作菱形,java,for-loop,nested,nested-loops,Java,For Loop,Nested,Nested Loops,所以我被派去用爪哇语做一个带星号的钻石,我真的被难住了。以下是我到目前为止的想法: 公共类Lab1{ 公共静态void main(字符串[]args){ 对于(int i=5;i>-5;i--){ 对于(int j=0;j=i;j--){ 系统输出打印(“”); } System.out.println(“*”); } } } 我知道你想做什么,这是思考钻石的一种非常巧妙的方式 当我变成负数时,你会对j计数器产生一些问题。看看如何使用Math.abs() 还可以尝试在基本步骤中编写一些带有注释
公共类Lab1{
公共静态void main(字符串[]args){
对于(int i=5;i>-5;i--){
对于(int j=0;j=i;j--){
系统输出打印(“”);
}
System.out.println(“*”);
}
}
}
我知道你想做什么,这是思考钻石的一种非常巧妙的方式 当我变成负数时,你会对j计数器产生一些问题。看看如何使用Math.abs() 还可以尝试在基本步骤中编写一些带有注释的伪代码,以使模式清晰:
//print 5 spaces + 1 star
//print 4 spaces + 2 stars
//print 3 spaces + 3 stars
//print 2 spaces+ 4 stars
.
.
.
//print 5 spaces + 1 star
然后,用变量(j和i)代替数字
你现在有了一个模型。这通常是编程中最难的部分。正确地获取模型。只有当您对模型如何工作有了好的想法时,才开始编写代码
一旦替换了变量,就可以尝试将整个过程转换为自动循环。public class Diamond{
//钻石的大小
私有整数对角;
公共菱形(整数对角线){
对角线=对角线;
}
公共场所(钻石){
int n=对角线;
对于(int i=n/2;i>=-n/2;i--){
对于(int k=0;k
主要问题是对角线的奇偶性。
如果它是偶数,你就不能正确地画出上面的星号。所以有两种钻石-奇数和偶数对角线(顶部有2和1个星号)。这应该行得通。您可能只需要大多数方法和
printdommond()
import java.util.Scanner;
公共级星际{
公共静态void main(字符串[]args){
int读取器;
扫描仪kBoard=新的扫描仪(System.in);
做{
System.out.println(“插入多行:”);
reader=kBoard.nextInt();
printDiamond(阅读器);
}while(reader!=0);
}
公共静态无效打印星(int n){
如果(n>=1){
系统输出打印(“*”);
printStars(n-1);
}
}
公共静态无效printTopTriangle(int行){
int x=1;
对于(int j=(行-1);j>=0;j--,x+=2){
打印空间(j);
printStars(x);
系统输出打印(“\n”);
}
}
公共静态空白打印空间(int n){
如果(n>=1){
系统输出打印(“”);
打印空间(n-1);
}
}
公共静态void打印底部三角形(int行,int起始空间){
int x=1+(2*(行-1));
对于(int j=startspace;j 0;j++,x-=2){
打印空间(j);
printStars(x);
系统输出打印(“\n”);
}
}
公共静态无效打印底部三角形(int行){
int x=1+(2*(行-1));
对于(int j=0;j 0;j++,x-=2){
打印空间(j);
printStars(x);
系统输出打印(“\n”);
}
}
公共静态无效打印菱形(整数行){
printTopTriangle((int)行/2+1);
打印底部三角形((int)行/2,1);
}
}
用于(int i=0;i<5;i++)
System.out.println(“**********”。子字符串(i,5+2*i));
对于(int i=5;i>0;i--)
System.out.println(“*********.”子字符串(i-1,5+(2*i)-3));
导入静态java.lang.System.out;
导入java.util.Scanner;
公共级钻石{
公共静态void main(字符串[]args){
扫描仪sc=新的扫描仪(System.in);
int row=sc.nextInt();
sc.close();
钻石d=新钻石();
d、 上菱形(世界其他地区);
d、 lowerDiamond(第2行);
}
公共区域(INTA){
for(int i=0;ii;j--)
输出。打印(“”);
对于(int k=0;k<2*i-1;k++)
输出。打印(“*”);
打印输出(“\n”);
}
}
公共无效下限(int b){
对于(int i=0;iimport java.util.Scanner;
公共级钻石{
/**
*@param args
*/
公共静态void main(字符串[]args){
//TODO自动生成的方法存根
扫描仪输入=新扫描仪(系统输入);
int input=in.nextInt();
int min=1;
对于(int i=0;ii;j--){
系统输出打印(“”);
}
对于(int k=0;k
公共类MyDiamond{
聚氨基甲酸酯
import java.util.Scanner;
public class MakeDiamond {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("Let's Creat Diamonds");
System.out.println("If number increases Diamonds gets bigger. Please input number lager than 1 : ");
int user_input = sc.nextInt(); //gets user's input
System.out.println("");
int x = user_input;
int front_space = -5;
for (int i = 0; i < 2 * user_input + 1; i++) {
for (int a = front_space; a < Math.abs(i - user_input); a++) {
System.out.print(" "); //Change a bit if diamonds are not in good shape
}
if (i < user_input + 1) {
for (int b = 0; b < 2 * i + 1; b++) {
System.out.print("* "); //Change a bit if diamonds are not in good shape
}
} else if (i > user_input) {
for (int c = 0; c < 2 * x - 1; c++) {
System.out.print("* "); //Change a bit if diamonds are not in good shape
}
x--;
}
System.out.print('\n');
}
System.out.println("\nRun Again? 1 = Run, 2 = Exit : ");
int restart = sc.nextInt();
System.out.println("");
if (restart == 2) {
System.out.println("Exit the Program.");
System.exit(0);
sc.close();
}
}
}
}
package com.DiamondPrintingProgram;
import java.util.Scanner;
public class DiamondPrintingProgram {
public static void main(String[] args) {
int num = getInput();
int middle = (int) num / 2 + 1;
printOutput(num,middle);
}
public static int getInput() {
Scanner sc = new Scanner(System.in);
int num;
System.out.print("Enter a odd number: ");
while (true) {
num = sc.nextInt();
if (num % 2 != 0) {
break;
}
System.out.print("Please Enter a ODD NUMBER: ");
}
return num;
}
private static void printOutput(int num, int middle){
char asterisk = '*';
for (int j = 0; j < num; j++) {
for (int i = 1; i <= num; i++) {
if (j < middle) {
if ((i < (middle - j) || i > (middle + j))) {
System.out.print(' ');
} else {
System.out.print(asterisk);
}
} else {
if ((i < (j - middle + 2)) || (i > (2 * num - j - middle))) {
System.out.print(' ');
} else {
System.out.print(asterisk);
}
}
}
System.out.println();
}
}
}
∗
∗ ∗ ∗
∗ ∗ ∗ ∗ ∗
∗ ∗ ∗ ∗ ∗ ∗ ∗
∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗
∗ ∗ ∗ ∗ ∗ ∗ ∗
∗ ∗ ∗ ∗ ∗
∗ ∗ ∗
∗
public class Main {
public static void main(String[] args) {
final int MID_ROW_NUM = 5;
for (int i = 1 - MID_ROW_NUM; i < MID_ROW_NUM; i++) {
System.out.println(" ".repeat(Math.abs(i)) + "*".repeat((MID_ROW_NUM - Math.abs(i)) * 2 - 1));
}
}
}
*
***
*****
*******
*********
*******
*****
***
*
public class Main {
public static void main(String[] args) {
final int MID_ROW_NUM = 5;
for (int i = 1 - MID_ROW_NUM; i < MID_ROW_NUM; i++) {
System.out.println(" ".repeat(Math.abs(i)) + "* ".repeat((MID_ROW_NUM - Math.abs(i)) * 2 - 1));
}
}
}
*
* * *
* * * * *
* * * * * * *
* * * * * * * * *
* * * * * * *
* * * * *
* * *
*