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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© tc4892998 中级黑马   /  2014-5-6 21:37  /  1599 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我是JAVA新手,今天老师让我们根据一个整数来输出每一位的数字.
比如整数为1234,则打印输出1,2,3,4
我的代码如下:
/*
根据一个整数,输出每位的数值,比如1234,则输出1,2,3,4
*/
class Homework01
{
        public static void main(String[] args)
        {
                int a = 8723;
                int b = a/10;
                int c = a%10;
                int d = b/10;
                int e = b%10;
                int f = d/10;
                int g = d%10;
                int h = f/10;
                int i = f%10;               
                System.out.println(i+","+g+","+e+","+c);
        }
}

我的这段代码可以输出固定的四位数,我想问下可否根据Scanner输入一个数字,来进行相同的操作,而且还不使用流程语句,比如IF,FOR之类的,因为是刚开始学习,还没接触到那么深的层次,Scanner也是今天老师在课堂上教的- -!
希望各位高手帮着解答一番.

6 个回复

倒序浏览
Scanner你都学了,if,for深层次的?
回复 使用道具 举报
曹冬明 发表于 2014-5-6 21:50
Scanner你都学了,if,for深层次的?

今儿是老师告诉我们一个Scanner类名.....明天才讲if,for..
回复 使用道具 举报
要是不用流程控制语句,那么键盘输入一个10位数,像你这样得搞多少次啊
如果,你说不让用if和for的话,我能告诉你scanner了
Scanner sc  = new Scanner(System.in);
int num = sc.nextInt();
然后拿着这个num重复你那个运算吧
System.in是标准输入流,你后面学到IO就知道了,建议你去看看毕老师的基础视频,看完了,你就明白了
回复 使用道具 举报
曹冬明 发表于 2014-5-6 21:55
要是不用流程控制语句,那么键盘输入一个10位数,像你这样得搞多少次啊
如果,你说不让用if和for的话,我能 ...

恩,谢谢你啦.只不过今天刚学到运算符,这是老师留的作业- -
回复 使用道具 举报
import java.util.Scanner;
class Homework01
{
        public static void main(String[] args)
        {                //简化一点
                int a = 8723;                int b = a % 10;   //个位
                int c = a / 10 % 10;   //十位
                int d = a / 100 %10;   //百位
                int e = a / 1000;   //千位
                System.out.println(e+","+d+","+c+","+b);

                int k = new Scanner(System.in).nextInt();       //使用Scanner类
                String str = Integer.toString(k);        //将这个整数转变为字符串
                char[] chars = str.toCharArray();   //将字符串转变为字符数组
                for (char ch : chars)   //这里还是用到了For循环
                {
                        System.out.println(ch);
                }
        }
}


回复 使用道具 举报
本帖最后由 z1342802487 于 2014-5-6 22:24 编辑

不用流程控制的话恐怕不好写,
考虑到代码简洁可以用递归
  1. import java.util.Scanner;
  2. public class Test
  3.         {
  4.                 public static void main(String[] args)
  5.                         {
  6.                                 int a;
  7.                                 Scanner scanner=new Scanner(System.in);
  8.                             a = scanner.nextInt();
  9.                            show(a);
  10.                         }
  11.                 static void show(int i)
  12.                         {
  13.                                 if (i>=10)
  14.                                         {
  15.                                                 show(i/10);
  16.                                         }
  17.                                                 
  18.                                 System.out.print(i%10+" ");
  19.                                                 
  20.                         }
  21.         }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马