菜园小青虫

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

if判断:

格式:

if (判断条件){

          代码1

              }

else if (判断条件){

          代码2

             }

else{

         代码3

             }

if只有一个,else if可以有多个,else有一个或没有。

当满足if或else if后面的判断条件时,执行相对应的代码;但是只会执行一个if或else if,其它不执行。

如果都不满足将执行else。

public static void main(String[] arg) {
        /*
         * 运输公司对用户计算运费.路程越远每公里运费越低. 每公里每吨货物的基本运费为p,货物重为w,距离为s,折扣为d, 
         * 则总运费f的计算公式为f=p*w*s*(1-d) ; 
         * 输入基本运费,货重和距离,算出运费 
         * s<250km 没有折扣 
         * 250<= s <500 2%折扣
         * 500<= s <3000 8%折扣 
         * 3000<= s 15%折扣
         */
        int w = Integer.parseInt(JOptionPane.showInputDialog(null, "请输入您要运送货物的重量(吨)"));
        int s = Integer.parseInt(JOptionPane.showInputDialog(null, "请输入您要运送的距离(公里)"));
        int p = Integer.parseInt(JOptionPane.showInputDialog(null, "请输入每公里每吨运费(元)"));

        double d = 0;
        if (s < 250) {
            d = 0;
        } else if (s >= 250 && s < 500) {
            d = 0.02;
        } else if (s >= 500 && s < 3000) {
            d = 0.08;
        } else {
            d = 0.15;
        }
        double f = s * w * p * (1 - d);
        JOptionPane.showMessageDialog(null, "您的总运费为:" + f + "元");
    }
if示例

 

switch选择:

格式:

switch (变量或表达式){

     case  值1:

           代码1;

           break;

     case  值2:

           代码2;

           break;

     default:

           代码3;

           break;

          }

先计算switch后面表达式的值或变量的值,依次与case后面的值进行比较,

如相同则运行该case下面的代码当遇到第一个break时结束判断;如都不匹配则运行default下的代码。

 1 public static void main(String[] arg) {
 2         // 分别输入年、月、日,计算这个年月日是一年中的第几天。
 3         int year = Integer.parseInt(JOptionPane.showInputDialog(null, "请输入年份"));
 4         int month = Integer.parseInt(JOptionPane.showInputDialog(null, "请输入月份"));
 5         int day = Integer.parseInt(JOptionPane.showInputDialog(null, "请输入日"));    
 6         int n = 0;
 7         if (year > 0 && day > 0 && day <= 31) {
 8             switch (month) {
 9             case 12:
10                 n += 30;
11             case 11:
12                 n += 31;
13             case 10:
14                 n += 30;
15             case 9:
16                 n += 31;
17             case 8:
18                 n += 31;
19             case 7:
20                 n += 30;
21             case 6:
22                 n += 31;
23             case 5:
24                 n += 30;
25             case 4:
26                 n += 31;
27             case 3:
28                 if (year % 4 == 0) {
29                     n += 29;
30                 } else {
31                     n += 28;
32                 }
33             case 2:
34                 n += 31;
35             case 1:
36                 n += day;
37                 JOptionPane.showMessageDialog(null, year + "年第" + n + "天");
38                 break;
39             default:
40                 JOptionPane.showMessageDialog(null, "输入错误");
41                 break;
42             }
43         } else {
44             JOptionPane.showMessageDialog(null, "输入错误");
45         }
46     }
switch示例

 

while循环:

格式:

while  (循环条件){

          循环体

}

循环条件:必须是boolean类型

循环体:任意代码

while循环是先判断条件,如果为真则执行循环体;如果为假则退出循环。

while循环可能执行1次,也可能执行多次,也可能不执行。适合循环次数未知的循环。

 1 public static void main(String[] args) {
 2 // ATM
 3         int money = 8000;
 4         while (true) {
 5             String s = JOptionPane.showInputDialog(null, "1、存款" + "\n2、取款" + "\n3、查询余额" + "\n4、退卡");
 6             if (s.equals("1")) {
 7                 String m = JOptionPane.showInputDialog(null, "请输入存款金额");
 8                 money += Integer.parseInt(m);
 9                 JOptionPane.showMessageDialog(null, "当前余额:" + money);
10             } else if (s.equals("2")) {
11                 String m = JOptionPane.showInputDialog(null, "请输入取款金额");
12                 int getMoney = Integer.parseInt(m);
13                 if (getMoney > money) {
14                     JOptionPane.showMessageDialog(null, "余额不足");
15                 } else {
16                     money -= getMoney;
17                     JOptionPane.showMessageDialog(null, "当前余额:" + money);
18                 }
19             } else if (s.equals("3")) {
20                 JOptionPane.showMessageDialog(null, "当前余额:" + money);
21             } else {
22                 JOptionPane.showMessageDialog(null, "请收好你的卡片");
23                 break;
24             }
25         }
26 }
while示例

 

do  while循环:

格式:

do  {

循环体

}  while (循环条件);

循环条件:必须是boolean类型

循环体:任意代码

do  while 循环是先执行一次循环体,再判断循环条件。

do  while至少执行一次。适合循环次数未知的循环。

 

 1     public static void main(String[] args) {
 2         /*
 3          * 任意输入一个数,打印它的每一位。 比如:输入785 输出: 5 8 7
 4          */
 5         int x = Integer.parseInt(JOptionPane.showInputDialog(null, "请输入一个数"));
 6         
 7             do {
 8                 System.out.println(x % 10);
 9                 x = x / 10;
10             } while (x != 0);
11         
12     }
do while示例

 

for循环:

格式:

for  (表达式1;循环条件;表达式2){

                循环体

     }

循环条件:必须是boolean类型

循环体:任意代码

for循环先执行表达式1,再判断循环条件,如果满足则执行循环体,然后执行表达式2;

继续判断循环条件如满足再次执行循环体,再执行表达式2;如不满足判断条件则退出循环。

for循环适合用于循环次数已知的循环。

while循环和for循环可以互相转换。

 

 1 public static void main(String[] args){
 2         //打印1 1 2 3 5 8 13 21(斐波拉数列)
 3         int a=1;
 4         int b=1;
 5         for (int i = 0; i < 4; i++) {
 6             System.out.print(a+" "+b+" ");
 7             a=a+b;
 8             b=a+b;
 9         }
10     }
for示例

 

posted on 2018-03-24 13:11  菜园小青虫  阅读(168)  评论(0编辑  收藏  举报