import java.util.Scanner;
public class Pattern{
public static void main(String []args){
Scanner sc = new Scanner(System.in);
String d = sc.nextLine();
System.out.println(d);
String[] ds = d.split(",");
for(int i=0;i<ds.length;i++){
for(int j=i+1;j<=Integer.parseInt(ds[i]);j++) {
System.out.print("*");
}
System.out.println();
}
}
}
它在第二行打印3颗星但是我传递值1,4因此它打印输出在第一行打印1星和第二行打印4星但在输出它显示3星在第二行不是4星如何我解决了这个问题。
答案 0 :(得分:0)
j应从0开始(条件严格为&lt ;,或1和&lt; =):
for(int j=0;j<Integer.parseInt(ds[i]);j++)
答案 1 :(得分:0)
试试这段代码:
import java.util.Scanner;
public class Main
{
public static void main(String []args){
Scanner sc = new Scanner(System.in);
String d = sc.nextLine();
System.out.println(d);
String[] ds = d.split(",");
for(int i=0;i<ds.length;i++){
for(int j=0;j<Integer.parseInt(ds[i]);j++)
{
System.out.print("*");
}
System.out.println();
}
}
}
您需要更改内部循环,j
的值应从0
开始,而不是从i+1
开始,循环的条件应为j<Integer.parseInt(ds[i])
答案 2 :(得分:0)
import java.util.Scanner;
public class Pattern
{
public static void main(String []args){
Scanner sc = new Scanner(System.in);
String d = sc.nextLine();
System.out.println(d);
String[] ds = d.split(",");
for(int i=0;i<ds.length;i++){
for(int j=1;j<=Integer.parseInt(ds[i]);j++)
{
System.out.print("*");
}
System.out.println();
}
}
}
将变量j
更新为1
而不是i+1
。