《JAVA 语言程序设计基础篇》chapter 3 选择

上章内容回顾

上一章主要是关于java基本数据类型以及使用Scanner类输入

这里复习一下,使用输入框完成书后的一道课后题目

习题:编写程序,读取一个0到1000之间的整数,并将该整数的各位数字相加。

分析:使用运算符%分解数字,然后使用运算符/去掉分解出来的数字,

 1 import javax.swing.JOptionPane;
2 public class NumbersSum {
3
4 public static void main(String[] args) {
5 // TODO Auto-generated method stub
6 String numberString=JOptionPane.showInputDialog("请输入一个0到1000的整数");
7 int number=Integer.parseInt(numberString);
8
9 if(number<0||number>=1000)
10 JOptionPane.showMessageDialog(null, "输入数字范围错误","ERROR",JOptionPane.INFORMATION_MESSAGE);
11 else
12 {
13 int sum =0;
14 while(number>0)
15 {
16 int s=number%10;
17 number=number/10;
18 sum+=s;
19 }
20 String output="各位数字之和为:"+sum;
21 JOptionPane.showMessageDialog(null, output);
22 }
23 }
24 }


前面几节是关于if语句的使用,

这里取其中比较巧妙的做法

1//这是一个显得赘余的程序 
if(number%2==0)
2 even=true;
3 else
4 even=false;

//改为下面的程序

bool  even
= number%2==0

这样更简短些

因为之前学习C++的时候这部分用得比较多,所以并不做太多叙述
取一个经过改进的BMI(身体质量指数)的程序来简单应用一下if语句

 1 import javax.swing.JOptionPane;
2
3 public class BMI {
4 public static void main(String[] args) {
5 // TODO Auto-generated method stub
6 String weightString =JOptionPane.showInputDialog("请输入体重:(单位:KG)");
7 double weight=Double.parseDouble(weightString);
8
9 String heightString =JOptionPane.showInputDialog("请输入身高:(单位:M)");
10 double height=Double.parseDouble(heightString);
11
12 double answer=weight/( Math.pow(height,2));
13 String out;
14 if(answer<16)
15 out="\n您实在是太瘦了";
16 else if(answer<18)
17 out="\n你偏瘦啦";
18 else if(answer<24)
19 out="\n恭喜你正常身材啊";
20 else if(answer<29)
21 out="\n你超重了";
22 else if(answer<35)
23 out="\n你实在是太胖了";
24 else
25 out="\n我已经对你的胖无语了";
26 String output="BMI指数为:"+answer+out;
27 JOptionPane.showMessageDialog(null, output);
28
29 }
30 }

格式化控制台输出

System.out.printf(format,item1,item2,...,itemk);

 1 public class StringFormat {
2
3 public static void main(String[] args) {
4 // TODO Auto-generated method stub
5 int count=5;
6 double amount=54.25;
7 System.out.printf("count is %d and amount is %f", count,amount);
8 double s1=2.0/3;
9 System.out.printf("\n s1 is %4.2f", s1);//%4.2f 4是与宽度,2是精度,f是转化码
10
11 }
12
13 }

GUI(确认框)

int option=JOptionPane.showConfirmDialog(null,"Continue");

 1 import javax.swing.JOptionPane;;
2 public class StringFormat {
3
4 public static void main(String[] args) {
5 // TODO Auto-generated method stub
6 String set1=
7 " 1\t 3\t 5\t 7\n"+
8 " 9\t 11\t 13\t 15\n"+
9 " 17\t 19\t 21\t 23\n"+
10 " 25\t 27\t 29\t 31";
11 String set2=
12 " 2 3 6 7\n"+
13 " 10 11 14 15\n"+
14 " 18 19 22 23\n"+
15 " 26 27 30 31";
16 String set3=
17 " 4 5 6 7\n"+
18 " 12 13 14 15\n"+
19 " 20 21 22 23\n"+
20 " 28 29 30 31";
21 String set4=
22 " 8 9 10 11\n"+
23 " 12 13 14 15\n"+
24 " 24 25 26 27\n"+
25 " 28 29 30 31";
26 String set5=
27 " 16 17 18 19\n"+
28 " 20 21 22 23\n"+
29 " 24 25 26 27\n"+
30 " 28 29 30 31";
31 int day=0;
32
33 int answer=JOptionPane.showConfirmDialog(null, "你的生日在这些数字中么?\n"+set1);
34 if(answer==JOptionPane.YES_OPTION)
35 day+=1;
36
37 answer=JOptionPane.showConfirmDialog(null, "你的生日在这些数字中么?\n"+set2);
38 if(answer==JOptionPane.YES_OPTION)
39 day+=2;
40
41 answer=JOptionPane.showConfirmDialog(null, "你的生日在这些数字中么?\n"+set3);
42 if(answer==JOptionPane.YES_OPTION)
43 day+=4;
44
45 answer=JOptionPane.showConfirmDialog(null, "你的生日在这些数字中么?\n"+set4);
46 if(answer==JOptionPane.YES_OPTION)
47 day+=8;
48
49 answer=JOptionPane.showConfirmDialog(null, "你的生日在这些数字中么?\n"+set5);
50 if(answer==JOptionPane.YES_OPTION)
51 day+=16;
52
53 JOptionPane.showMessageDialog(null, "你的生日是 "+day+"!");
54 }
55
56 }


比如我生日那天是1号

 



posted on 2012-02-02 16:47 菜牙先生 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/lengmo/archive/2012/02/02/2335219.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值