• 自学JAVA-3:判断、循环


    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、存款" + "
    2、取款" + "
    3、查询余额" + "
    4、退卡");
     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示例
  • 相关阅读:
    C#中的委托和事件(续)
    C# 中的委托和事件
    玩转JS插件系列
    gusfield
    线性规划
    后缀自动机
    bitset
    二维树状数组
    线段树合并
    求凸包
  • 原文地址:https://www.cnblogs.com/LYL6868/p/8638517.html
Copyright © 2020-2023  润新知