四则运算

之前发到文章里去了,主页竟然没显示。。。

四则运算我用的是java写的,在编写的过程中我感觉因为java没有scanf所以输入上确实比c和c++过程上繁琐一点,而且我还犯了一个低级的错误,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package  myMaths;
import  java.util.Scanner;
public  class  Maths {
 
     public  static  void  main(String[] args) {
         System.out.println( "请输入运算方式(加 is 1,减is 2,乘is 3,除is 4)" );
         Scanner  choose =  new  Scanner(System.in);
         int  c =  choose.nextInt();
         if (c !=  1  && c != 2   && c !=  3  && c !=  4  ) {
             System.out.println( "非法输入!" );
             System.exit( 0 );
             }
         else
         System.out.println( "选择为:" +c);
         System.out.println( "输入练习数目" );
         Scanner  num =  new  Scanner(System.in);
         System.out.println( "选择数目为:" +num.nextInt());     //此处错误
         int  t =  num.nextInt();                             //此处错误
             
                 ...
 
     }
 
}

这个错误导致了当我输入练习的种类和数目后程序没继续向下执行,如图:

后经过翻阅资料及同学的帮助才发现应该先赋值在打印,因为num.nextInt()会自动扫描下一个整数,而我一次只输入一个数,但我先用.nextInt()把他打印出来已经算扫描一次,所以下面把.nextInt()赋值给t应是扫描的下一个整数但我只输入一个数,所以并没有给t赋值,他会一直等待下一次输入所以程序没往下进行。

改正方法很简单就是先把输入的数赋值给t,以后使用t来打印和判断循环即可。

最终程序如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
package  add;
 
import  java.util.Scanner;
 
public  class  ad {
 
     public  static  void  main(String[] args) {
         
         System.out.println( "请输入运算方式(加 is 1,减is 2,乘is 3,除is 4)" );
         Scanner  choose =  new  Scanner(System.in);
         int  c =  choose.nextInt();
         if (c !=  1  && c != 2   && c !=  3  && c !=  4  ) {
             System.out.println( "非法输入!" );
             System.exit( 0 );
             }
         else
         System.out.println( "选择为:" +c);
         System.out.println( "输入练习数目" );
         Scanner  num =  new  Scanner(System.in);
         int  t =  num.nextInt();
         System.out.println( "选择数目为:" +t);
             
     switch (c) {
         
     case  1 :
         {
         for ( int  n =  0 ;n < t;n++) {
         int  t3 = ( int ) Math.floor( 100 *Math.random()) +  1 ;
         int  t2 = ( int ) Math.floor( 100 *Math.random()) +  1 ;
         System.out.println( t3 +  "+"  + t2 );
         int  t1 = t3 + t2;
         System.out.println( "结果为"  + t1  );
             }
         break ;
         }
         
         case  2 :
         {
         for ( int  n =  0 ;n < t;n++) {
         int  t3 = ( int ) Math.floor( 100 *Math.random()) +  1 ;
         int  t2 = ( int ) Math.floor( 100 *Math.random()) +  1 ;
         int  t1 = t3 + t2;
         System.out.println( t1 +  "-"  + t2 );
         System.out.println( "结果为"  + t3  );
             }
         break ;
         }
         
         case  3 :
         {
         for ( int  n =  0 ;n < t;n++) {
         int  t3 = ( int ) Math.floor( 100 *Math.random()) +  1 ;
         int  t2 = ( int ) Math.floor( 100 *Math.random()) +  1 ;
         System.out.println( t3 +  "*"  + t2 );
         int  t1 = t3 * t2;
         System.out.println( "结果为"  + t1  );
             }
         break ;
         }
         
         case  4 :
         {
         for ( int  n =  0 ;n < t;n++) {
         int  t3 = ( int ) Math.floor( 100 *Math.random()) +  1 ;
         int  t2 = ( int ) Math.floor( 100 *Math.random()) +  1 ;
         int  t1 = t3 * t2;
         System.out.println( t1 +  "/"  + t2 );
         System.out.println( "结果为"  + t3  );
             }
         break ;
         }
         
         }
     }
}
    

  

运行结果如下:

这次我编写的四则运算程序由于功能比较单一,所以并没用多少时间,大概十几分钟就完工了,相比起来还是改错的过程比较痛苦,因为犯的是运行错误,编译时并没有发现,所以比较头疼。下次我一定会更加努力!

转载于:https://www.cnblogs.com/yzdd/p/5268534.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值