【有书共读(第1期)】《明解Java》笔记:第3章

官方小结:
  • 所谓表达式,就是“变量”“常量”“通过运算符将变量和常量连接起来的式子”。
  • 表达式包含类型和值,它们在程序运行时通过求值获得。
  • 给表达式加上分号的语句是表达式语句。只有分号的语句是空语句。
  • 用大括号“{}”将任意数量的语句括起来的语句是程序块。原则上,只在程序块中使用的变量在程序块中进行声明。
  • 如果仅当某个条件成立时才执行某条语句,可以使用if-then语句来实现。如果要根据条件的真假而执行不同的处理,可以使用if-then-else来实现。两者统称为if语句。
  • 如果通过某个单一表达式的值将程序流程进行分支,最好使用switch语句。分支跳转的位置是标签。如果没有与控制表达式的值相等的标签,则跳转到default标签。
  • 当switch语句中的break语句被执行时,switch语句的执行将会终止。
  • 各运算符的优先级和结合性是不同的。
  • 优先级高的运算符比优先级低的运算符先执行。当优先级相同的运算符连续出现时,根据结合性,执行左运算或右运算。
  • 关系运算符、相等运算符、逻辑非运算符可以生成布尔型的true(真)或者false(假)。
  • 使用逻辑与运算符和逻辑或运算符的运算中会执行短路求值。所谓短路求值,就是当表达式整体的值通过左操作数的值就可以确定时,将不再对右操作数进行求值。
  • 当对赋值表达式进行求值时,可以得到赋值后的左操作数的类型和值。
  • if或else等词都具有特殊的含义,称为关键字。
  • 赋给变量和方法等的名称称为标识符。
  • 所谓算法,就是“解决问题的方案,是一系列定义明确、有序并且数量有限的规则集合”。
课后习题:
3-1
/**
 * 
 */
package com.finersoft.chap03.homework;

import java.util.Scanner;

/**
 * 名称:作业3-1<br/>
 * 说明:编写一段程序,读入一个整数值,并显示它的绝对值<br/>
 * 
 * @author Finersoft
 * @date 2018年3月25日
 */
public class Ex0301 {

    /**
     * @param args
     */
    public static void main(String[] args) {
        Scanner stdIn = new Scanner(System.in);

        try {
            System.out.print("请输入一个整数值:");
            int n = stdIn.nextInt();
            int positiven = n;
            if (n < 0) {
                positiven = n * -1;
            }
            System.out.println("" + n + "的绝对值是:" + positiven);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (stdIn != null) {
                stdIn.close();
            }
        }
    }

}
3-2
/**
 * 
 */
package com.finersoft.chap03.homework;

import java.util.Scanner;

/**
 * 名称:<br/>
 * 说明:输入两个整数<br/>
 * 如果后一个是前一个的约数,则输出后一个是前一个的约数<br/>
 * 否则输出后一个不是前一个的约数<br/>
 * 
 * @author Finersoft
 * @date 2018年3月25日
 */
public class Ex0302 {

    /**
     * @param args
     */
    public static void main(String[] args) {
        Scanner stdIn = new Scanner(System.in);

        try {
            System.out.print("请输入一个整数值:");
            int n = stdIn.nextInt();
            System.out.print("请输入一个整数值:");
            int m = stdIn.nextInt();
            int nmodem = -1;
            String isornot = "不是";
            if (m != 0) {
                nmodem = n % m;
            }
            if (nmodem == 0) {
                isornot = "是";
            }
            System.out.println("" + m + isornot + n + "的约数");
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (stdIn != null) {
                stdIn.close();
            }
        }
    }

}
3-3
/**
 * 
 */
package com.finersoft.chap03.homework;

import java.util.Scanner;

/**
 * 名称:<br/>
 * 说明:将Sign.java最后一个else 改为 else if (n==0)会怎么样<br/>
 * 
 * @author Finersoft
 * @date 2018年3月25日
 */
public class Ex0303 {

    /**
     * @param args
     */

    public static void main(String[] args) {
        Scanner stdIn = new Scanner(System.in);

        try {
            System.out.print("整数值:");
            int n = stdIn.nextInt();
            if (n > 0) {
                System.out.println("该值为正。");
            } else if (n < 0) {
                System.out.println("该值为负。");
            } else if (n == 0) {
                System.out.println("该值为0。");
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (stdIn != null) {
                stdIn.close();
            }
        }
    }

}
3-4
package com.finersoft.chap03.homework;

import java.util.Scanner;

/**
 * 名称:<br/>
 * 说明:写一个比较两个整数谁大的代码<br/>
 * 
 * @author Finersoft
 * @date 2018年3月25日
 */
public class Ex0304 {
    public static void main(String[] args) {
        Scanner stdIn = new Scanner(System.in);

        try {
            System.out.print("请输入一个整数值n:");
            int n = stdIn.nextInt();
            System.out.print("请输入一个整数值m:");
            int m = stdIn.nextInt();
            if (m > n) {
                System.out.println("m更大");
            } else if (n > m) {
                System.out.println("n更大");
            } else if (n == m) {
                System.out.println("一样大");
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (stdIn != null) {
                stdIn.close();
            }
        }
    }
}
3-5
/**
 * 
 */
package com.finersoft.chap03.homework;

import java.util.Scanner;

/**
 * 名称:<br/>
 * 说明:输入一个数,如果是负数或0,则输出是负数或0<br/>
 * 如果是正数,且能被5整除,就显示能被5整除<br/>
 * 否则显示不能被5整除。
 * 
 * @author Finersoft
 * @date 2018年3月25日
 */
public class Ex0305 {

    /**
     * @param args
     */
    public static void main(String[] args) {
        Scanner stdIn = new Scanner(System.in);

        try {
            System.out.print("请输入一个整数值n:");
            int n = stdIn.nextInt();
            if(n<=0)
            {
                System.out.println("n不是正整数");
            }else
            {
                if(n%5==0)
                {
                    System.out.println("n能被5整除");
                }
                else
                {
                    System.out.println("n不能被5整除");
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (stdIn != null) {
                stdIn.close();
            }
        }

    }

}
3-6
package com.finersoft.chap03.homework;

import java.util.Scanner;

/**
 * 名称:<br/>
 * 说明:输入一个数,如果是负数或0,则输出是负数或0<br/>
 * 如果是正数,且能被10整除,就显示是10的倍数<br/>
 * 否则显示不是10的倍数。
 * 
 * @author Finersoft
 * @date 2018年3月25日
 */
public class Ex0306 {

    /**
     * @param args
     */
    public static void main(String[] args) {
        Scanner stdIn = new Scanner(System.in);

        try {
            System.out.print("请输入一个整数值n:");
            int n = stdIn.nextInt();
            if(n<=0)
            {
                System.out.println("n不是正整数");
            }else
            {
                if(n%10==0)
                {
                    System.out.println("n是10的倍数");
                }
                else
                {
                    System.out.println("n不是10的倍数");
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (stdIn != null) {
                stdIn.close();
            }
        }

    }

}
3-7
package com.finersoft.chap03.homework;

import java.util.Scanner;

/**
 * 名称:<br/>
 * 说明:判断一个数是非正整数,还是3的倍数,或输出对3整除后的余数<br/>
 * 
 * @author Finersoft
 * @date 2018年3月25日
 */
public class Ex0307 {


    public static void main(String[] args) {
        Scanner stdIn = new Scanner(System.in);
        try {
            System.out.print("请输入一个整数值n:");
            int n = stdIn.nextInt();
            if (n <= 0) {
                System.out.println("n不是正整数");
            } else {
                int yushu = n % 3;
                switch (yushu) {
                case 0:
                    System.out.println("n能被3整除");
                    break;
                case 1:
                    System.out.println("n被3除余1");
                    break;
                case 2:
                    default:
                    System.out.println("n被3除余2");
                    break;
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (stdIn != null) {
                stdIn.close();
            }
        }
    }
}
3-8
/**
 * 
 */
package com.finersoft.chap03.homework;

import java.util.Scanner;

/**
 * 名称:<br/>
 * 说明:按分数来输出成绩的等级<br/>
 * @author Finersoft
 * @date 2018年3月25日
 */
public class Ex0308 {

    public static void main(String[] args) {
        Scanner stdIn = new Scanner(System.in);
        try {
            System.out.print("请输入分数n:");
            int n = stdIn.nextInt();
            if (n <= 0) {
                System.out.println("n不是分数");
            } else {
                int dengji = n / 10;
                if(dengji<6)
                {
                    System.out.println("不及格");
                }
                else if (dengji<7 )
                {
                    System.out.println("及格");
                }
                else if (dengji <8)
                {
                    System.out.println("良");
                }
                else if(dengji<=10 && n<=100)
                {
                    System.out.println("优");
                }
                else 
                {
                    System.out.println("智商爆表");
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (stdIn != null) {
                stdIn.close();
            }
        }
    }
}
3-9
package com.finersoft.chap03.homework;

import java.util.Scanner;

/**
 * 名称:<br/>
 * 说明:判断两个实数值谁大谁小,输出大值<br/>
 * 
 * @author Finersoft
 * @date 2018年3月25日
 */
public class Ex0309 {
    public static void main(String[] args) {
        Scanner stdIn = new Scanner(System.in);

        try {
            System.out.print("请输入一个实数值n:");
            double n = stdIn.nextDouble();
            System.out.print("请输入一个实数值m:");
            double m = stdIn.nextDouble();
            System.out.println(m > n ? m : n);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (stdIn != null) {
                stdIn.close();
            }
        }
    }
}
3-10
package com.finersoft.chap03.homework;

import java.util.Scanner;

/**
 * 名称:<br/>
 * 说明:输出两数差值<br/>
 * @author Finersoft
 * @date 2018年3月25日
 */
public class Ex0310 {
    public static void main(String[] args) {
        Scanner stdIn = new Scanner(System.in);

        try {
            System.out.print("请输入一个整数值n:");
            int n = stdIn.nextInt();
            System.out.print("请输入一个整数值m:");
            int m = stdIn.nextInt();
            System.out.println(Math.abs(m-n));
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (stdIn != null) {
                stdIn.close();
            }
        }
    }
}
3-11
package com.finersoft.chap03.homework;

import java.util.Scanner;

/**
 * 名称:<br/>
 * 说明:判断两数差值与10的大小<br/>
 * @author Finersoft
 * @date 2018年3月25日
 */
public class Ex0311 {
    public static void main(String[] args) {
        Scanner stdIn = new Scanner(System.in);

        try {
            System.out.print("请输入一个整数值n:");
            int n = stdIn.nextInt();
            System.out.print("请输入一个整数值m:");
            int m = stdIn.nextInt();
        int minus = Math.abs(m-n);
        
        System.out.println(minus<=10?"差值小于等于10":"差值大于等于11");
        
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (stdIn != null) {
                stdIn.close();
            }
        }
    }
}
3-12
package com.finersoft.chap03.homework;

import java.util.Scanner;

/**
 * 名称:<br/>
 * 说明:显示3个数最小值<br/>
 * 
 * @author Finersoft
 * @date 2018年3月25日
 */
public class Ex0312 {
    public static void main(String[] args) {
        Scanner stdIn = new Scanner(System.in);

        try {
            System.out.print("请输入一个整数值l:");
            int l = stdIn.nextInt();
            System.out.print("请输入一个整数值n:");
            int n = stdIn.nextInt();
            System.out.print("请输入一个整数值m:");
            int m = stdIn.nextInt();
            int min = l<n?l:n;
            min= min<m?min:m;
            
            System.out.println("最小值是:"+min);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (stdIn != null) {
                stdIn.close();
            }
        }
    }
}
3-13
package com.finersoft.chap03.homework;

import java.util.Scanner;

/**
 * 名称:求中间值<br/>
 * 说明:求三个数的中间值 <br/>
 * 
 * @author Finersoft
 * @date 2018年3月25日
 */
public class Ex0313 {
    public static void main(String[] args) {
        Scanner stdIn = new Scanner(System.in);

        try {
            System.out.print("请输入一个整数值l:");
            int l = stdIn.nextInt();
            System.out.print("请输入一个整数值n:");
            int n = stdIn.nextInt();
            System.out.print("请输入一个整数值m:");
            int m = stdIn.nextInt();

            int max = l > m ? l : m;
            int min = l < m ? l : m;
            int mid = max < n ? max : n;
            mid = mid > min ? mid : min;

            System.out.println("中间值是:" + mid);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (stdIn != null) {
                stdIn.close();
            }
        }
    }
}
3-14
package com.finersoft.chap03.homework;

import java.util.Scanner;

/**
 * 名称:<br/>
 * 说明:显示两数关系<br/>
 * 
 * @author Finersoft
 * @date 2018年3月26日
 */
public class Ex0314 {
    public static void main(String[] args) {
        Scanner stdIn = new Scanner(System.in);
        // 较小的值/较大的值
        int min=0, max=0;

        try {
            System.out.print("整数a:");
            int a = stdIn.nextInt();
            System.out.print("整数b:");
            int b = stdIn.nextInt();
            if (b == a) {
                System.out.println("a==b");
            } else {
                if (a < b) {
                    // 如果a小于b
                    min = a;
                    max = b;
                } else if (b< a) {
                    // 否则
                    min = b;
                    max = a;
                }
                System.out.println("较小的值是" + min + "。");
                System.out.println("较大的值是" + max + "。");
                
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (stdIn != null) {
                stdIn.close();
            }
        }
    }
}
3-15
package com.finersoft.chap03.homework;

import java.util.Scanner;

/**
 * 名称:<br/>
 * 说明:按从大到小排列输入的两个数<br/>
 * 
 * @author Finersoft
 * @date 2018年3月26日
 */
public class Ex0315 {
    public static void main(String[] args) {
        Scanner stdIn = new Scanner(System.in);

        try {
            System.out.print("整数a:");
            int a = stdIn.nextInt();
            System.out.print("整数b:");
            int b = stdIn.nextInt();
            System.out.println(a > b ? "" + a + "," + b + "" : "" + b + "," + a + "");

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (stdIn != null) {
                stdIn.close();
            }
        }
    }
}
3-16
package com.finersoft.chap03.homework;

import java.util.Scanner;

/**
 * 名称:<br/>
 * 说明:升值排列三个数<br/>
 * 
 * @author Finersoft
 * @date 2018年3月26日
 */
public class Ex0316 {
    public static void main(String[] args) {
        Scanner stdIn = new Scanner(System.in);

        try {
            System.out.print("整数l:");
            int l = stdIn.nextInt();
            System.out.print("整数m:");
            int m = stdIn.nextInt();
            System.out.print("整数n:");
            int n = stdIn.nextInt();

            int max = Math.max(l, m);
            max = Math.max(max, n);
            int min = Math.min(l, m);
            min = Math.min(min, n);
            int mid = (l + m + n) - (max + min);

            System.out.println("从小到大:" + min + "," + mid + "," + max);

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (stdIn != null) {
                stdIn.close();
            }
        }
    }
}
3-17
package com.finersoft.chap03.homework;

import java.util.Random;

/**
 * 名称:<br/>
 * 说明:随机生成0,1,2换算成石头剪刀布<br/>
 * 
 * @author Finersoft
 * @date 2018年3月26日
 */
public class Ex0317 {
    public static void main(String[] args) {

        try {
            System.out.print("请选择手势(0…石头/1…剪刀/2…布):");
            int hand = new Random().nextInt(3);
            switch (hand) {
            case 0:
                System.out.println("石头");
                break;
            case 1:
                System.out.println("剪刀");
                break;
            case 2:
                System.out.println("布");
                break;
            default:
                System.out.println("请出石头剪刀布中的一种");
                break;
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {

        }
    }
}
3-18
package com.finersoft.chap03.homework;

import java.util.Scanner;

/**
 * 名称:<br/>
 * 说明:输入月份,显示输入月份表示的季节<br/>
 * @author Finersoft
 * @date 2018年3月26日
 */
public class Ex0318 {
    public static void main(String[] args) {
        Scanner stdIn = new Scanner(System.in);
        int m1 = 1, m2 = 2, m3 = 3, m5 = 5, m6 = 6, m8 = 8, m9 = 9, m11 = 11, m12 = 12;
        try {
            System.out.print("计算季节。\n请输入月份:");
            int month = stdIn.nextInt();
            if (month >= m3 && month <= m5) {
                // 3月·4月·5月
                System.out.println("这是春天。");
            } else if (month >= m6 && month <= m8) {
                // 6月·7月·8月
                System.out.println("这是夏天。");
            } else if (month >= m9 && month <= m11) {
                // 9月·10月·11月
                System.out.println("这是秋天。");
            } else if (month == m12 || month == m1 || month == m2) {
                // 12月·1月·2月
                System.out.println("这是冬天。");
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (stdIn != null) {
                stdIn.close();
            }
        }

    }
}

全部评论

相关推荐

ResourceUtilization:四六级不愧是大学最有用的证之一
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务