【问题标题】:Do-while question javaDo-while 问题 java
【发布时间】:2010-12-22 12:18:22
【问题描述】:

我的程序将提供有关建筑物的信息,这些信息存储在在线 Oracle 数据库中。我得到它要求用户输入建筑物编号,然后运行并显示几个查询的结果。

这是我目前得到的:

String userbnumber = null;
try {
    BufferedReader obj = new BufferedReader(new InputStreamReader(System.in));
    System.out.print("Please enter the building number: "); 
    userbnumber = obj.readLine();
} catch (IOException e) {   
}
// A Lot of queries which use userbnumber as the basis for getting data from tables

但是,我不知道如何/在哪里使用 do-while 子句不断询问建筑物编号,直到用户输入 0,此时程序将打印“谢谢您的时间”和停下来。

任何帮助将不胜感激。

【问题讨论】:

  • 说真的,不要吞下异常。
  • 如果这是作业,请标记它。

标签: java while-loop do-while


【解决方案1】:
 BufferedReader obj = new BufferedReader(new InputStreamReader(System.in));
 do {
     try {
         System.out.print("Please enter the building number: "); 
         userbnumber = obj.readLine();
         if(!usernumber.equals("0"){
         //perform action here
         }
     } catch (IOException e) { 
         //handle it
     }
 } while(!userbnumber.equals("0"));  

更好的方法是

while(true){
        try {
             System.out.print("Please enter the building number: "); 
             userbnumber = obj.readLine();
             if(usernumber.equals("0"){
                     break;
             }
             //perform action here
         } catch (IOException e) { 
             //handle it
         }

}

【讨论】:

  • 您可能希望在执行操作之前检查非零输入。这就是为什么我相信read(); while() { // action }
  • @marcog yes 还建议了另一种方式
  • 即使有IOException,看起来你也会绕圈子。
  • @Tom Hawtin - 定位线//handle it
  • @org.life.java 哦,我的编译器忽略了这一点。大多数程序员似乎认为printf-equivalent(不[经常]抛出)真的把船推了出去。
【解决方案2】:
package pack34;

import java.sql.*;
import java.io.*;

public class Letstryagain34 {
    public static void main(String args[]) 
    {
    String userbnumber = null;
    try {
        BufferedReader obj = new BufferedReader(new InputStreamReader(System.in));
        do{
            System.out.print("Please enter the building number: "); 
            userbnumber = obj.readLine();
        }while(!"0".equals(userbnumber))
            System.out.println("Thank you for your time");
        }
        catch (IOException e) { 
            System.out.println("Argh! Nasty error..");
        }
        /*A Lot of queries which use userbnumber as the basis for getting data from tables
        */      
    }
}

【讨论】:

    【解决方案3】:
    package pack34;
    
    import java.sql.*;
    import java.io.*;
    
    public class Letstryagain34 {
        public static void main(String args[]) 
        {
        String userbnumber = null;
        try {
            BufferedReader obj = new BufferedReader(new InputStreamReader(System.in));
            System.out.print("Please enter the building number: "); 
            userbnumber = obj.readLine();
            }
            catch (IOException e) { 
                 // handle it!
            }
            /*A Lot of queries which use userbnumber as the basis for getting data from tables
            */      
    do{
    /* Fetch the Question from Database & write back the answer here*/
    
            System.out.print("Want to continue :  "); 
    int choice = obj.readLine();
    }while(choice!=0);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-27
      • 2016-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      相关资源
      最近更新 更多