| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2753 人关注过本帖
标题:java自学之:循环问题
只看楼主 加入收藏
jscs_he
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2016-3-23
结帖率:0
收藏
 问题点数:0 回复次数:8 
java自学之:循环问题
写了一个函数里面是关于一个循环:
最终的目标是希望:当输入错误的时候会提示,然后重新输入 知道符合条件位置!
public static void in (String[][] rooms){
        Scanner s = new Scanner(System.in);
        do{System.out.print("请输入房间号:");
            int roomNo= s.nextInt();
            int floor =roomNo /100;
            int  No = roomNo %100;
            if(floor <1 ||floor >12 || No <1 || No >10)
                continue;
            System.out.print("房间号输入有误请重新输入:");
        }
        while (true);
                }
搜索更多相关主题的帖子: continue public java 
2016-03-29 12:29
grmmylbs
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:54
帖 子:1409
专家分:5845
注 册:2016-2-14
收藏
得分:0 
输入错误要重新输入,正确呢?
2016-03-29 13:35
jscs_he
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2016-3-23
收藏
得分:0 
回复 楼主 jscs_he
public static void in (String[][] rooms){
        System.out.print("请输入房间号:");
        Scanner s = new Scanner(System.in);
            int roomNo= s.nextInt();
            int floor =roomNo /100;//得到楼层号
            int  No = roomNo %100;//得到房间号
        if(floor < 1 || floor >12 || No <1 || No>10){//入住的函数就可以结束了
            System.out.println("输入的房间号错误:请重新输入:入住,命令继续操作!");
            return;
        }
        if (!"EMPTY".equals(rooms[floor-1][No-1])){
            System.out.println("该房间已经有人入住;请重新输入:入住命令继续操作");
            return;
        }
        System.out.print("请输入您的姓名:");
        String name =s.next();
        rooms[floor-1][No-1]=name;
        System.out.println("入住成功!");
        //
    }
我希望他输入错误之后重新输入 输入正确走下一步!
2016-03-29 13:45
grmmylbs
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:54
帖 子:1409
专家分:5845
注 册:2016-2-14
收藏
得分:0 
你可以给这个函数定义成boolean型,返回true或false,外面调用时判断返回值,根据返回值来判断是否重复调用。
或者像你刚开始那样写成while循环,错误就用continue,正确就break。
2016-03-29 13:58
jscs_he
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2016-3-23
收藏
得分:0 
/*
    酒店前台客房管理系统;我想在入住和退房的函数 做循环,不想每次输入错误就重新 输入 入住;
*/
import java.util.Scanner;
class  HotelSystem
{
    public static void main(String[] args) {
        //代表楼层所有的房间
        String[][] rooms =new String[12][10];
        System.out.println("欢迎来到xxx大酒店");
        System.out.println("请输入要操作的命令: 查询 ,入住,退房"
        +",quit 退出系统");
        Scanner s= new Scanner(System.in);
        //比较字符串是否相同,-------------"in".equals(command)
        while (true)
        {
            String command = s.next();
            if("查询".equals(command))
            {
                init(rooms);
                search(rooms);
            }else if ("入住".equals(command))
            {
                in(rooms);
            }else if("退房".equals(command)){
                out(rooms);
            else if("退出".equals(commadn)){
                System.out.println("系统退出成功");
                break;
            }else{
                System.out.println("输入有误,请重新输入!");
            }
            
        }
        //字符串数组如果没有初始化元素,每个元素都是null
    }
    //办理入住 ,----直接输入房间号进行入住,
    //将来可以先列出可以入住的房间 在让用户输入房间号
    public static void in (String[][] rooms){
        System.out.print("请输入房间号:");
        Scanner s = new Scanner(System.in);
            int roomNo= s.nextInt();
            int floor =roomNo /100;//得到楼层号
            int  No = roomNo %100;//得到房间号
        if(floor < 1 || floor >12 || No <1 || No>10){//入住的函数就可以结束了
            System.out.println("输入的房间号错误:请重新输入:入住,命令继续操作!");
            return;
        }
        if (!"EMPTY".equals(rooms[floor-1][No-1])){
            System.out.println("该房间已经有人入住;请重新输入:入住命令继续操作");
            return;
        }
        System.out.print("请输入您的姓名:");
        String name =s.next();
        rooms[floor-1][No-1]=name;
        System.out.println("入住成功!");
        //
    }
    public static void out(String[][]rooms){
        System.out.print("请输入房间号办理退房:");
        Scanner s =new Scanner(System.in);
            int roomNo= s.nextInt();
            int floor =roomNo /100;//得到楼层号
            int  No = roomNo %100;//得到房间号
        if(floor < 1 || floor >12 || No <1 || No>10){//入住的函数就可以结束了
            System.out.println("输入的房间号错误:请重新输入:(退房)命令继续操作!");
            return;
        }
        if ("EMPTY".equals(rooms[floor-1][No-1])){
            System.out.println(roomNo+"该房间暂无人入住;请重新输入:(退房)命令继续操作");
            return;
        }
        rooms[floor-1][No-1]="EMPTY";
        System.out.println("退房成功");

    }

        //房间查询--------->将来可以输入具体发房间号和状态来查询
    public static void search(String[][] rooms)
    {
        //打印房间号,
        for (int i=1;i<rooms.length ;i++ )
        {
            for (int j=0;j<rooms[i].length ;j++ )
            {
                if(i<=9)
                {
                    System.out.print("0");
                }
                int roomsN =(i)*100+j+1;
                System.out.print(roomsN+"\t");
            }
            System.out.println();
            //打印房间状态,
            for (int k =0;k<rooms[i].length ;k++ )
            {
                System.out.print(rooms[i][k]+"\t");
            }
            System.out.println();
        }
    }
    //初始化所有房间。
    public static void init(String[][] rooms)
    {
        for (int i=0;i<rooms.length ;i++ )
        {
            for (int j =0;j<rooms[i].length ;j++ )
            {
                rooms[i][j]="EMPTY";
            }
        }
        System.out.println("房间初始化完毕!");
    }
}
2016-03-29 14:15
grmmylbs
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:54
帖 子:1409
专家分:5845
注 册:2016-2-14
收藏
得分:0 
是这意思不?

import java.util.Scanner;

 class  HotelSystem
 {
     public static void main(String[] args) {
         //代表楼层所有的房间
        String[][] rooms =new String[12][10];
         System.out.println("欢迎来到xxx大酒店");
         init(rooms);        
         Scanner s= new Scanner(System.in);
         //比较字符串是否相同,-------------"in".equals(command)
         while (true)
         {
             System.out.println("请输入要操作的命令: 查询 ,入住,退房"
                     +",quit 退出系统");
             String command = s.next();
             if("查询".equals(command))
             {
                 init(rooms);
                 search(rooms);
             }
             else if ("入住".equals(command))
             {
                 in(rooms);
             }
             else if("退房".equals(command))
             {
                 out(rooms);
             }
             else if("退出".equals(command))
             {
                 System.out.println("系统退出成功");
                 break;
             }
             else
             {
                 System.out.println("输入有误,请重新输入!");
             }
            
         }
         //字符串数组如果没有初始化元素,每个元素都是null
     }
     //办理入住 ,----直接输入房间号进行入住,
     //将来可以先列出可以入住的房间 在让用户输入房间号
    public static void in (String[][] rooms){
         System.out.print("请输入房间号:");
         Scanner s = new Scanner(System.in);
         while(true)
         {
             int roomNo= s.nextInt();
             int floor =roomNo /100;//得到楼层号
            int  No = roomNo %100;//得到房间号
            if(floor < 1 || floor >12 || No <1 || No>10){//入住的函数就可以结束了
                System.out.println("输入的房间号错误:请重新输入房间号:");
                 continue;
             }
             if (!"EMPTY".equals(rooms[floor-1][No-1])){
                 System.out.println("该房间已经有人入住;请重新输入房间号:");
                 continue;
             }
            
             System.out.print("请输入您的姓名:");
             String name =s.next();
             rooms[floor-1][No-1]=name;
             System.out.println("入住成功!");
             break;
         }
         //
     }
     public static void out(String[][]rooms){
         System.out.print("请输入房间号办理退房:");
         Scanner s =new Scanner(System.in);
             int roomNo= s.nextInt();
             int floor =roomNo /100;//得到楼层号
            int  No = roomNo %100;//得到房间号
        if(floor < 1 || floor >12 || No <1 || No>10){//入住的函数就可以结束了
            System.out.println("输入的房间号错误:请重新输入:(退房)命令继续操作!");
             return;
         }
         if ("EMPTY".equals(rooms[floor-1][No-1])){
             System.out.println(roomNo+"该房间暂无人入住;请重新输入:(退房)命令继续操作");
             return;
         }
         rooms[floor-1][No-1]="EMPTY";
         System.out.println("退房成功");

     }

         //房间查询--------->将来可以输入具体发房间号和状态来查询
    public static void search(String[][] rooms)
     {
         //打印房间号,
         for (int i=1;i<rooms.length ;i++ )
         {
             for (int j=0;j<rooms[i].length ;j++ )
             {
                 if(i<=9)
                 {
                     System.out.print("0");
                 }
                 int roomsN =(i)*100+j+1;
                 System.out.print(roomsN+"\t");
             }
             System.out.println();
             //打印房间状态,
             for (int k =0;k<rooms[i].length ;k++ )
             {
                 System.out.print(rooms[i][k]+"\t");
             }
             System.out.println();
         }
     }
     //初始化所有房间。
    public static void init(String[][] rooms)
     {
         for (int i=0;i<rooms.length ;i++ )
         {
             for (int j =0;j<rooms[i].length ;j++ )
             {
                 rooms[i][j]="EMPTY";
             }
         }
         System.out.println("房间初始化完毕!");
     }
 }
2016-03-29 14:35
jscs_he
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2016-3-23
收藏
得分:0 
回复 6楼 grmmylbs
十分感谢,,知道问题在哪里了,谢谢!
2016-03-29 14:39
沐羽默
Rank: 1
等 级:新手上路
帖 子:3
专家分:7
注 册:2016-3-30
收藏
得分:0 
想要自学却无从下手,感觉奥郁闷
2016-03-30 09:23
爱过94
Rank: 1
等 级:新手上路
威 望:1
帖 子:4
专家分:5
注 册:2016-3-20
收藏
得分:0 
回复 8楼 沐羽默
我也是,感觉学了好久了,还是什么都不会,写个什么什么系统都不会。非常的难受
2016-04-11 09:27
快速回复:java自学之:循环问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029172 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved