gpt4 book ai didi

java - 循环没有给出想要的结果,卡住了

转载 作者:行者123 更新时间:2023-12-01 12:33:17 24 4
gpt4 key购买 nike

import java.util.Scanner;

public class Ve {
public static void main(String[]args){

int hoyde;
int linje = 0;

Scanner tast = new Scanner(System.in);

System.out.println("Hvor hoy skal din V bli?(mellom 2 og 10)");
hoyde = tast.nextInt();
tast.nextLine();

//assert (hoyde <=2 && hoyde >=10) : "hoyde må være mellom 2 og 10";

for(linje= 0; linje < hoyde;linje++) {
int start = linje;
int end = (hoyde-1)*2;

for(linje= 0;linje<=linje;linje++){
if(linje == end){
System.out.println("*");
break;
}
else if(linje == start){
System.out.print("*");
} else{
System.out.print(" ");
}
}
}
}
}

我正在尝试使用 * 打印出 V。不知何故,当我运行代码时,它在同一行上打印出 2 个单星。我被困在这个问题上,我似乎不知道应该如何传播给定的信息。我使用 Scanner 输入 V 应该具有的高度的数字。

最佳答案

即使它没有解决任何 Java 相关的问题,而只是纯粹的临时算法,但也不应该回答它。但既然您使用的是 drjava,我假设您刚刚踏入 Java 世界,如果能伸出援手就好了。

正如 @Keppil 在他的评论中已经指出的那样,永远不要在两个认可的循环中使用相同的迭代原语,除非确实有特殊处理(我自己从未遇到过),因为当第一个循环索引递增时,您将丢失第一个循环索引(递减)通过内部循环。

还有一些算法方法,希望它们能通过下面代码中的注释清楚地表达出来:

public class FancyVDrawer
{
public static void main(String[] args)
{
int hoyde;
int linje = 0;
Scanner tast = new Scanner(System.in);
System.out.println("Hvor hoy skal din V bli?(mellom 2 og 10)");
hoyde = tast.nextInt();
tast.nextLine();
//assert (hoyde <=2 && hoyde >=10) : "hoyde må være mellom 2 og 10";
++hoyde; //We need hoyde line stars thus should be incremented by one since we cannot draw one star in last line
int end = (hoyde - 1) * 2; // The end should be calculated once, then decremented and not reassigned in each loop iteration
for (linje = 0; linje < hoyde; linje++)
{
int start = linje;
for (int i = 0; i < end; i++)
{
if ((i == start))
{
System.out.print("*");
} else if (i == (end-1))
{
System.out.println("*");
--end; // Decrement the end index once we are going to a new line
}
else
{
System.out.print(" ");
}
}
if(linje == (hoyde - 2)) // Should break to prevent writing the last lonely star
break;
}
}
}

关于java - 循环没有给出想要的结果,卡住了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25774060/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com