【问题标题】:Pointing to specific line in program with if statement? Java用 if 语句指向程序中的特定行?爪哇
【发布时间】:2014-10-08 21:55:07
【问题描述】:

我有一个程序要求用户输入 1 到 6 之间的值。但是,如果他们不在该范围内询问,我希望程序要求用户再次输入。我在方法中有其他代码,所以我不能只指向方法。

System.out.print("Now enter a number between 1 and 6 ");
        dieNumber = keyboard.nextInt();

        if (dieNumber == 1){        
            drawOne(pane);  }   
        else if (dieNumber == 2){
            drawTwo(pane);  }
        else if (dieNumber == 3){
            drawThree(pane);}
        else if (dieNumber == 4){
            drawFour(pane); }
        else if (dieNumber == 5){
            drawFive(pane); }
        else if (dieNumber == 6){
            drawSix(pane); }

【问题讨论】:

  • 您是否尝试使用while 循环将代码sn-p 括起来?似乎它应该对我有用。
  • @Keppil 是的,但归根结底,我仍然需要一些说明,如果它不在该范围之间,请再次运行。
  • 这就是 while 循环的用途
  • @AntonH 是的,我想错了。谢谢!

标签: java loops if-statement while-loop


【解决方案1】:

每次用户输入大于 6 的数字时,只需要让 while 循环再次询问

System.out.print("Now enter a number between 1 and 6 ");
		
		dieNumber = keyboard.nextInt();
		while (dieNumber > 6){
			System.out.print("Now enter a number between 1 and 6 ");
			dieNumber = keyboard.nextInt();
		}
		if (dieNumber == 1){		
			drawOne(pane);	}	
		else if (dieNumber == 2){
			drawTwo(pane);	}
		else if (dieNumber == 3){
			drawThree(pane);	}
		else if (dieNumber == 4){
			drawFour(pane);	}
		else if (dieNumber == 5){
			drawFive(pane);	}
		else if (dieNumber == 6){
			drawSix(pane); }

【讨论】:

    【解决方案2】:

    另一种解决方案,不需要在每个路径中添加break; 或任何其他重复代码:

    boolean needToTryAgain;
    do {
        needToTryAgain = false;
        System.out.print("Now enter a number between 1 and 6 ");
        dieNumber = keyboard.nextInt();
    
        if (dieNumber == 1){        
            drawOne(pane);  }   
        else if (dieNumber == 2){
            drawTwo(pane);  }
        else if (dieNumber == 3){
            drawThree(pane);}
        else if (dieNumber == 4){
            drawFour(pane); }
        else if (dieNumber == 5){
            drawFive(pane); }
        else if (dieNumber == 6){
            drawSix(pane); }
        else {
            // this would be a good place to print an error message
            needToTryAgain = true;
        }
    } while (needToTryAgain);
    

    【讨论】:

      【解决方案3】:

      我只是添加一个whilebreak;,如果选择你想要的数字,break 将打破除此之外的 while 循环,它会要求用户输入另一个数字。

      while(true){
          System.out.print("Now enter a number between 1 and 6 ");
          dieNumber = keyboard.nextInt();
          if (dieNumber == 1){        
              drawOne(pane);  break;}   
          else if (dieNumber == 2){
              drawTwo(pane);  break;}
          else if (dieNumber == 3){
              drawThree(pane);break;}
          else if (dieNumber == 4){
              drawFour(pane); break;}
          else if (dieNumber == 5){
              drawFive(pane); break;}
          else if (dieNumber == 6){
              drawSix(pane);  break;}
      }
      

      【讨论】:

        猜你喜欢
        • 2017-03-08
        • 1970-01-01
        • 2011-08-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多