有没有发现控制台老是有问题?我改了下代码。还有就是这个我改的代码为啥不打印输出

有没有发现控制台老是有问题?我改了下代码。还有就是这个我改的代码为啥不打印输出

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

		Scanner sc = new Scanner(System.in);
		try {
			System.out.println("运算开始");
			System.out.println("请输入第一个整数");
			int one = sc.nextInt();
			System.out.println("请输入第二个整数");

			Integer two = sc.nextInt();

			if (two.equals(null)) {
				
				while (two.equals(null)) {
					//这里为什么无法输出下面这个提示信息?
					System.out.println("请重新输入");
					two = sc.nextInt();
				}
			}

			System.out.println("one和two的商:" + one / two);
		} catch (java.util.InputMismatchException e) {
			System.out.println("输入的类型不匹配,请输入整数");

		} catch (java.lang.ArithmeticException e) {
			
			System.out.println("除数不能为零,请重新输入");

		} catch (Exception e) {
			System.out.println("你咋不上天");
		} finally {
			System.out.println("运算结束");
			sc.close();
			System.exit(1);
		}

	}
}


正在回答

登陆购买课程后可参与讨论,去登陆

4回答
import java.util.Scanner;
public class TryDemoOne3 {
    public static void main(String[] args) {
 
        Scanner sc = new Scanner(System.in);
        try {
            System.out.println("运算开始");
            System.out.println("请输入第一个整数");
            int one = sc.nextInt();
            System.out.println("请输入第二个整数");
           
 
           String two = sc.nextLine();
           Integer two1 = null;
           two = sc.nextLine();
           //two1=Integer.parseInt(two);
            if (two.equals("")) {
                 
                while (two.equals("")) {
                    //这里为什么无法输出下面这个提示信息?
                    System.out.println("请重新输入");
                    two = sc.nextLine();
                   
                    
                }
            }
            two1=Integer.parseInt(two);//将字符串转换为整型
            System.out.println("one和two的商:" + one / two1);
        } catch (java.util.InputMismatchException e) {
            System.out.println("输入的类型不匹配,请输入整数");
 
        } catch (java.lang.ArithmeticException e) {
             
            System.out.println("除数不能为零,请重新输入");
 
        } catch (Exception e) {
            System.out.println("你咋不上天");
        } finally {
            System.out.println("运算结束");
            sc.close();
            System.exit(1);
        }
 
    }
}

运行一下上面的代码,看看是不是你想要的效果。如果有问题可以继续提问,祝学习愉快!

  • lijikai1937 提问者 #1
    非常感谢!
    2017-06-07 15:37:17
好帮手慕珊 2017-06-06 20:47:01

你好!我运行了一下这个代码,如果输入two的时候输入一个非数字,就会抛出异常,输出输入的类型不匹配,请重新输入。你是不是想这个时候重新输入数据呢?

  • 提问者 lijikai1937 #1
    我想让第二次输入的时候,如果输入空,然后打印一条输出语句。就是while循环里面的那条,“请重新输入”。但是我输入为空的时候,它就会一直等着让我输入,而不会打印出这个提示信息。
    2017-06-06 22:15:50
  • 提问者 lijikai1937 #2
    它一直等着我重新输入,说明它已经进入这个while循环了对吧?但是它不会打印那条我想让他提示的信息。
    2017-06-06 22:17:14
慕粉0907203 2017-06-06 18:02:20

two的值怎么会是null呢,怎么着都要把输入的内容赋值呀。输的值要不是整数就执行异常了

  • 提问者 lijikai1937 #1
    你先试试再说
    2017-06-06 19:02:58
  • 提问者 lijikai1937 #2
    我定义的是Integer不是int
    2017-06-06 19:04:04
提问者 lijikai1937 2017-06-06 17:41:04

我想输出那条提示信息,可是输出不了,我可以把它加在什么位置?

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师