Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
循环未给出所需的结果,被卡住 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 - Fatal编程技术网

循环未给出所需的结果,被卡住 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,因此退出外环

循环未给出所需的结果,被卡住 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在他的评论中已经指出的,不要在两个被认可的循环中使用相同的迭代原语,除非有真正的特殊处理(我自己从未遇到过),因为当第一个循环索引被内部循环递增

它在(linje==开始)时打印星号1,在(linje==结束)时打印星号2。 在内环之后,linje>hoyde,因此退出外环


如上所述,您可能希望为循环变量指定不同的名称。

即使它不是针对任何与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(" ");
        }
      }
    }
  }
}