A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陈少文 中级黑马   /  2012-6-19 17:58  /  2780 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 陈少文 于 2012-6-20 00:28 编辑

/*
需求:用0~6表示星期日~星期六。编写程序,输入一个0~6整数,显示改整数代表星期几
思路:
1.要求输入:需要可以读取键盘输入
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();

2.数字和星期相对应
用到判断语句
int i
switch(i)
{
case 0:
System.out.println("星期六");
break;
case 1:
System.out.println("星期一");
break;
}

  
*/
import java.util.*;
public class WhatDay
{
public static void main(String[] args)
{
  
  Scanner sc = new Scanner(System.in);
  int i = sc.nextInt();
   
  switch(i)
  {
  case 0:
   System.out.println("星期六");
  break;
  case 1:
   System.out.println("星期一");
  break;
  
  case 2:
   System.out.println("星期二");
   break;
   
  case 3:
   System.out.println("星期三");
   break;
  
  case 4:
   System.out.println("星期四");
   break;
  
  case 5:
   System.out.println("星期五");
   break;
  default:
   System.out.println("输入非法");
  
  
  }
   
}

}



想问一下,如何让这个程序可以重复执行
每次程序执行一次后就结束了。如何让它可以继续执行?

11 个回复

倒序浏览
本帖最后由 余银桂 于 2012-6-19 18:13 编辑

加个循环就行了!
  1. import java.util.*;
  2. public class WhatDay
  3. {
  4. public static void main(String[] args)
  5. {
  6.                 while( true ){
  7.                           Scanner sc = new Scanner(System.in);
  8.                           int i = sc.nextInt();
  9.                           
  10.                           switch(i)
  11.                           {
  12.                           case 0:
  13.                            System.out.println("星期六");
  14.                           break;
  15.                           case 1:
  16.                            System.out.println("星期一");
  17.                           break;
  18.                           
  19.                           case 2:
  20.                            System.out.println("星期二");
  21.                            break;
  22.                           
  23.                           case 3:
  24.                            System.out.println("星期三");
  25.                            break;
  26.                           
  27.                           case 4:
  28.                            System.out.println("星期四");
  29.                            break;
  30.                           
  31.                           case 5:
  32.                            System.out.println("星期五");
  33.                            break;
  34.                           default:
  35.                            System.out.println("输入非法");
  36.                           
  37.                           
  38.                   }
  39.                 }
  40.                   
  41.                 }

  42. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

回复 使用道具 举报
在外面加个while(true)循环 就无限执行下去了

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

回复 使用道具 举报
你这个程序用的是switch语句,在程序运行时,程序会逐个看满足哪个条件,满足该条件就执行对应的执行体。只输入一个值就只输出一个结果。
你要想都输出可以加一个for循环。
public class whatDay
{
   public static void main(String[] args)
   {
     for(int i=0;i<=6;i++)
        {  
      switch(i)
   {
  case 0:
   System.out.println("星期日");
  break;
  case 1:
   System.out.println("星期一");
  break;
  
  case 2:
   System.out.println("星期二");
   break;
   
  case 3:
   System.out.println("星期三");
   break;
  
  case 4:
   System.out.println("星期四");
   break;
  case 5:
   System.out.println("星期五");
   break;
   case 6:
   System.out.println("星期六");
   break;
  default:
   System.out.println("输入非法");
  
  
  }
  }
   
}
}
输出结果为从周日到周一

  

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

回复 使用道具 举报
import java.util.*;
public class WhatDay
{
public static void main(String[] args)
{
  for(;;;)//while(true)
  {Scanner sc = new Scanner(System.in);
  int i = sc.nextInt();
   
  switch(i)
  {
  case 0:
   System.out.println("星期六");
  break;
  case 1:
   System.out.println("星期一");
  break;
  
  case 2:
   System.out.println("星期二");
   break;
   
  case 3:
   System.out.println("星期三");
   break;
  
  case 4:
   System.out.println("星期四");
   break;
  
  case 5:
   System.out.println("星期五");
   break;
  default:
   System.out.println("输入非法");
  
  
  }
}
   
}   
加上一个死循环就行了,又由于System.in是阻塞式的,所以不用担心消耗内存。这样就可以无限循环下去了!
(建议:好好加强下基础)
回复 使用道具 举报
回答的有道理
回复 使用道具 举报
孙峰 黑马帝 2012-6-19 18:15:49
7#
将switch()语句放入一个while(true){}的死循环中。 然后将 i 的输入语句也放进入即可。  能让程序无限循环判断。每次break 语句退出switch,然后有输入开始判断。
回复 使用道具 举报
  1. package com.sum;

  2. import java.util.*;

  3. public class WhatDay {
  4.         public static void main(String[] args) {
  5.                 Scanner sc = new Scanner(System.in);
  6.                 boolean flag = true;
  7.                 while (flag) {
  8.                         System.out.println("请输入数字:");
  9.                         int i = sc.nextInt();
  10.                         switch (i) {
  11.                         case 0:
  12.                                 System.out.println("星期日");
  13.                                 break;
  14.                         case 1:
  15.                                 System.out.println("星期一");
  16.                                 break;
  17.                         case 2:
  18.                                 System.out.println("星期二");
  19.                                 break;
  20.                         case 3:
  21.                                 System.out.println("星期三");
  22.                                 break;
  23.                         case 4:
  24.                                 System.out.println("星期四");
  25.                                 break;
  26.                         case 5:
  27.                                 System.out.println("星期五");
  28.                                 break;
  29.                         case 6:
  30.                                 System.out.println("星期六");
  31.                                 break;
  32.                         default:
  33.                                 System.out.println("输入非法");
  34.                                 break;
  35.                         }
  36.                         if (!flag)
  37.                                 i = sc.nextInt();
  38.                 }
  39.         }
  40. }
复制代码
不明白的可以再问我
回复 使用道具 举报

当然

本帖最后由 胡大强 于 2012-6-19 18:23 编辑

import java.util.*;
public class WhatDay
{
public static void main(String[] args)
{
                for(int i=0;;i++){   ///加一个循环。。。循环的循环条件不写,其实就相当于死循环了。。。会一直判断下去。当然如果你想跳出循环,就在循环中也就是switch的外面加一个                                                          //break;就ok了。。。
                          Scanner sc = new Scanner(System.in);
                           int i = sc.nextInt();
                           
                          switch(i)
                          {
                          case 0:
                           System.out.println("星期六");
                          break;
                          case 1:
                           System.out.println("星期一");
                          break;
                          
                          case 2:
                           System.out.println("星期二");
                           break;
                           
                          case 3:
                           System.out.println("星期三");
                           break;
                          
                          case 4:
                           System.out.println("星期四");
                           break;
                          
                          case 5:
                           System.out.println("星期五");
                           break;
                          default:
                           System.out.println("输入非法");
                          
                          
                  }
                }
                  
                }

}
回复 使用道具 举报
估计你是想连续的输入吧,想检验0~6到底是不是都匹配是吧。
加个死循环就行了
package org.gengxin;

import java.util.Scanner;

public class WhatDay
{
        public static void main(String[] args)
        {

                Scanner sc = new Scanner(System.in);

                while (true)
                {
                        int i = sc.nextInt();

                        switch (i)
                        {
                        case 0:
                                System.out.println("星期六");
                                break;
                        case 1:
                                System.out.println("星期一");
                                break;

                        case 2:
                                System.out.println("星期二");
                                break;

                        case 3:
                                System.out.println("星期三");
                                break;

                        case 4:
                                System.out.println("星期四");
                                break;

                        case 5:
                                System.out.println("星期五");
                                break;
                        default:
                                System.out.println("输入非法");

                        }
                }

        }
回复 使用道具 举报
记住最简单的两个无线循环语句:
wille(true){}
if(;;){}
回复 使用道具 举报
楼主是想验证每个数字对应的星期几是不是对的么,其实大可不必手动输入,由函数产生随机数即可,每次产生随机数进行判断,同时对此数据进行保留或是记个标志,然后进行下一次的循环,循环终止的条件是0——7每个数都产生一遍之后程序自动停止运行。
其二,按照楼主的思想,可以在 int i = sc.nextInt();  switch 之外加一个循环,循环终止条件改为当输入为一个你定义的数字时结束循环,如 for(int j=0;i!=-999;j++) 即是当输入i值为-999时结束循环,这样一来可以实现楼主所要求的无限循环,二来,真正想要结束程序时也能退出,这样,才算是一个完美的程序
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马