【问题标题】:Double Arrays, Do While Loop双数组,Do While 循环
【发布时间】:2014-05-08 04:17:16
【问题描述】:
  • 列表项

  • 用从 1 到大小限制的随机整数填充数组

  • 提示查看用户是否想再做一次

  • 您需要使用嵌套的 for 循环来为数组的元素赋值并打印它们 // 这样数组中的值不会很大,将它们限制在由行数确定的范围内{

  • 如果您使用 Do 循环来启动方格,则可以在此处保持 While 条件以检查哨兵

** 所以我已经能够做所有这些事情,除了在工作时做我的事!当它完成 for 语句的运行时,它会询问我的 print 语句然后结束代码,甚至没有机会为我的 }while 语句输入输入。

已解决*******

【问题讨论】:

  • Java passing scanner into method 的可能重复项 - 提供的答案与此处给出的答案几乎完全相同。
  • 知道了!非常感谢!我只需要制作另一个扫描仪!
  • 它是什么?为什么要删除内容。如果您的问题由您自己解决,请发布您自己的答案。如果您的问题通过下面提供的任何答案解决,则接受相同跨度>
  • 为什么要删除它!留着它。它可能对其他人有帮助
  • @user3614778 重新编辑问题并将问题放回原处。你的话题不会被删除。您的问题是真实的,其他人将来可能会面临同样的问题。 SO 不仅关心回答您的具体问题,而且还充当问题的存储库。

标签: java


【解决方案1】:

来自这个帖子,Using scanner.nextLine()

“这是因为当你输入一个数字然后回车时,input.nextInt() 只消耗数字,而不是“行尾”,原始数据类型如 int、double 等不消耗“行尾”,由于这个“行尾”保留在缓冲区中,当 input.next() 执行时,它会从第一个输入中消耗缓冲区中的“行尾”。这就是为什么,你的 String sentence =scanner.next() 只使用“行尾”,不等待从键盘读取。”

因此,在您输入数字并使用nextInt() 读取它后,行尾字符仍保留在缓冲区中,当您调用nextLine() 时,它会读取该字符并返回。对于所有输入,您应该使用readLine(),并在适当的情况下使用Integer.parseInt()

【讨论】:

  • 啊我明白了!所以我又做了另一个扫描仪,它工作了。非常感谢你们!您现在可以删除此线程或锁定它!谢谢!!
  • 您应该将此答案标记为已接受(在左侧打勾)。这就是解决问题的方法。
【解决方案2】:

在循环的底部更改为 answer = input.nextLine(); answer = input.next();。可以参考http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html

【讨论】:

    【解决方案3】:

    您可以将您的语句answer = input.nextLine(); 放在if 块中作为for 循环块之后块中的最后一条语句,这样您的代码在更改语句位置后将如下所示:

    import java.util.Scanner;
    
    public class SquareMakerCF{
    
    public static void main(String[] args){
    
    Scanner input = new Scanner(System.in);
    
    String answer="";
    
    do
    {
      System.out.print("Enter the number of rows/columns: ");
      int rows = input.nextInt();
    
      if (rows != 0)
      {
        int [][] matrix = new int[rows][rows];
    
        for(int row = 0; row < matrix.length; row++)
        {
          for (int column = 0; column < matrix[row].length; column++)
          {
            matrix[row][column] = (int)(Math.random()*rows);
          }
        }
    
        for(int row=0; row<matrix.length; row++)
        {
          for(int column = 0; column < matrix[row].length; column++)
          {
            System.out.print(matrix[row][column] + " ");
          }
    
          System.out.println();
        }
    
        // new statement postion
          answer = input.nextLine();
      }
      else
      {
        System.out.print("Do not enter 0");
      }
      System.out.println("Do you want to do another? Enter yes or no: ");
    
    }
    while (answer.equalsIgnoreCase("yes"));
    
    
    }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-07-01
      • 1970-01-01
      • 2018-05-09
      • 2015-07-03
      • 2016-02-21
      • 2020-11-26
      • 2015-02-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多