循环未给出所需的结果,被卡住 import java.util.Scanner; 公开课{ 公共静态void main(字符串[]args){ 内特霍德; int-linje=0; Scanner tast=新扫描仪(System.in); 系统输出打印(“Hvor hoy skal din V bli?(mellom 2 og 10)”; hoyde=tast.nextInt(); tast.nextLine(); //断言(hoyde=10):“hoyde måvære mellom 2 og 10”; for(linje=0;linjehoyde,因此退出外环
它在(linje==开始)时打印星号1,在(linje==结束)时打印星号2。 在内环之后,linje>hoyde,因此退出外环循环未给出所需的结果,被卡住 import java.util.Scanner; 公开课{ 公共静态void main(字符串[]args){ 内特霍德; int-linje=0; Scanner tast=新扫描仪(System.in); 系统输出打印(“Hvor hoy skal din V bli?(mellom 2 og 10)”; hoyde=tast.nextInt(); tast.nextLine(); //断言(hoyde=10):“hoyde måvære mellom 2 og 10”; for(linje=0;linjehoyde,因此退出外环,java,loops,drjava,Java,Loops,Drjava,它在(linje==开始)时打印星号1,在(linje==结束)时打印星号2。 在内环之后,linje>hoyde,因此退出外环 如上所述,您可能希望为循环变量指定不同的名称。即使它不是针对任何与Java相关的内容,而是纯粹的即席算法,也不应该回答这个问题。但是,由于您使用的是drjava,我假设您是Java世界中的新手,最好伸出援手 正如@Keppil在他的评论中已经指出的,不要在两个被认可的循环中使用相同的迭代原语,除非有真正的特殊处理(我自己从未遇到过),因为当第一个循环索引被内部循环递增
如上所述,您可能希望为循环变量指定不同的名称。即使它不是针对任何与Java相关的内容,而是纯粹的即席算法,也不应该回答这个问题。但是,由于您使用的是
drjava
,我假设您是Java世界中的新手,最好伸出援手
正如@Keppil在他的评论中已经指出的,不要在两个被认可的循环中使用相同的迭代原语,除非有真正的特殊处理(我自己从未遇到过),因为当第一个循环索引被内部循环递增(递减)时,您将失去第一个循环索引
还有一些algo方法,希望它们在下面的代码中有清晰的注释:
公共类抽屉
{
公共静态void main(字符串[]args)
{
内特霍德;
int-linje=0;
Scanner tast=新扫描仪(System.in);
系统输出打印(“Hvor hoy skal din V bli?(mellom 2 og 10)”;
hoyde=tast.nextInt();
tast.nextLine();
//断言(hoyde=10):“hoyde måvære mellom 2 og 10”;
++hoyde;//我们需要hoyde线星星,因此应该增加1,因为我们不能在最后一行画一颗星星
int end=(hoyde-1)*2;//end应该计算一次,然后在每次循环迭代中递减,而不是重新赋值
for(linje=0;linje
两个循环不能使用相同的变量。每次为第二个循环创建一个新变量。对于(…;linjeSo,代码在能够打印结果之前跳出循环?是的,跳出第一个循环,因此它只打印一行,而不是多行。如您所愿。
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(" ");
}
}
}
}
}