zoukankan      html  css  js  c++  java
  • java学习之路之javaSE基础3

    所有代码都未经测试。。

    1:for循环的格式?
    for循环格式:
    for(初始化表达式;条件表达式;循环后的操作表达式) {
    循环体;
    }
    执行流程:
    * a:执行初始化语句
    * b:执行判断条件语句,看其返回值是true还是false
    * 如果是true,就继续执行
    * 如果是false,就结束循环
    * c:执行循环体语句;
    * d:执行循环后的操作表达式
    * e:回到B继续。

    用for循环完成如下案例

    求1到10之间的数据之和
    int sum = 0 ;
    for(int i=1;i<=10;i++){
    sum += i;
    }
    System.out.println(sum);

    求1到100之间的偶数之和
    int sum = 0;
    for(int i=1;i<=100;i++){ //for(int i=0;i<=100;i+=2)
    if(i % 2 == 0 ){
    sum += i;
    }
    }
    System.out.println(sum);

    求1到100之间的奇数之和
    int sum = 0;
    for(int i=1;i<=100;i++){ //for(int i=1;i<=100;i+=2)
    if(i % 2 != 0 ){
    sum += i;
    }
    }
    System.out.println(sum);

    打印水仙花数:
    * 所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。
    * 举例:153就是一个水仙花数。
    * 153 = 1*1*1 + 5*5*5 + 3*3*3 = 1 + 125 + 27 = 153
    * 难点就是如何获取到每个三位数的每个位上的操作数
    for(int i=100;i<=999;i++){ //设置所有水仙花数的范围100~999
    int ge = i % 10; //利用取模操作符获取到各个位上的数
    int shi = i / 10 % 10;
    int bai = i / 10 / 10 % 10;
    if(ge*ge*ge+shi*shi*shi+bai*bai*bai == i){
    System.out.println(i);
    }
    }

    统计水仙花数
    int sum = 0;
    for(int i=100;i<=999;i++){ //设置所有水仙花数的范围100~999
    int ge = i % 10; //利用取模操作符获取到各个位上的数
    int shi = i / 10 % 10;
    int bai = i / 10 / 10 % 10;
    if(ge*ge*ge+shi*shi*shi+bai*bai*bai == i){
    //System.out.println(i);
    sum += 1;
    }
    }
    System.out.println(sum);

    九九乘法表
    for(int i=1;i<=9;i++){
    for(int j=1;j<=i;j++){
    System.out.print(j+"*"+i+"="+i*j+" ");
    }
    System.out.println();
    }

    2:while循环的格式?要能看懂执行流程
    while循环的基本格式:
    while(判断条件语句) {
    循环体语句;
    }

    while循环完整格式:
    初始化语句;
    while(判断条件语句) {
    循环体语句;
    控制条件语句;
    }

    用while循环完成如下案例
    求1到100的和
    int sum = 0;
    int num = 1;
    while(num <=100){
    sum += num;
    num++;
    }
    System.out.println(sum);

    纸张折叠成珠穆朗玛峰高度的次数,随意写的。。
    int count = 0;
    int num = 1;
    while(num <= 10000){
    count++;
    num *= 2;
    }
    System.out.println(count);

    循环结构do...while语句的格式:
    *
    do {
    循环体语句;
    }while(判断条件语句);

    完整格式;
    初始化语句;
    do {
    循环体语句;
    控制条件语句;
    }while(判断条件语句);

    执行流程:
    * a:执行初始化语句
    * b:执行循环体语句;
    * c:执行控制条件语句
    * d:执行判断条件语句,看其返回值是true还是false
    * 如果是true,就继续执行
    * 如果是false,就结束循环
    * e:回到b继续。

    三种循环语句的区别:
    * do...while循环至少执行一次循环体。
    * 而for,while循环必须先判断条件是否成立,然后决定是否执行循环体语句。
    * for循环和while循环的区别:
    如果你想在循环结束后,继续使用控制条件的那个变量,用while循环,否则用for循环。
    不知道用谁就用for循环。因为变量及早的从内存中消失,可以提高内存的使用效率。
    一定要注意控制条件语句控制的那个变量的问题,不要弄丢了,否则就容易死循环。
    两种最简单的死循环格式
    * while(true){...}
    * for(;;){...}


    3:break,continue和return分别有什么用?
    * return是结束方法;
    * break是跳出循环;只能在switch和循环中使用。
    * continue是终止本次循环继续下次循环;只能在循环中使用。

    4:函数的概念?函数的格式?格式的解释说明
    完成特定功能的代码块。
    修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) {
    方法体语句;
    return 返回值;
    }
    方法的格式说明:
    * 修饰符:目前就用 public static。后面我们再详细的讲解其他的修饰符。
    * 返回值类型:就是功能结果的数据类型。
    * 方法名:符合命名规则即可。方便我们的调用。
    * 参数:
    * 实际参数:就是实际参与运算的。
    * 形式参数;就是方法定义上的,用于接收实际参数的。
    * 参数类型:就是参数的数据类型
    * 参数名:就是变量名
    * 方法体语句:就是完成功能的代码。
    * return:结束方法的。
    * 返回值:就是功能的结果,由return带给调用者。

    5:函数的调用
    A:明确返回值类型的函数调用
    * a:单独调用,一般来说没有意义,所以不推荐。
    * b:输出调用,但是不够好。因为我们可能需要针对结果进行进一步的操作。
    * c:赋值调用,推荐方案。
    B:void类型的函数调用
    * 单独调用
    * 输出调用(错误)
    * 赋值调用(错误)

    6:函数的练习:
    A:求两个数据之和
    public static int add(int a,int b){
    int sum = a + b;
    return sum;
    }

    B:判断两个数据是否相等
    public static boolean isEquals(int a,int b){
    boolean bl = a == b;
    return bl;
    }

    C:获取两个数中较大的值
    public static int getMaxNum(int a,int b){
    int maxNum = (a>b)? a:b;
    return maxNum;
    }

    D:打印m行n列的星形矩形
    Scanner sc = new Scanner();
    int m = sc.nextInt();
    int n = sc.nextInt();
    printMN(m,n);
    public static void printMN(int m,int n){
    for(int i=1;i<=m;i++){
    for(int j=1;j<=i;j++){
    System.out.print("*");
    }
    System.out.println();
    }
    }

    E:打印nn乘法表
    Scanner sc = new Scanner();
    int m = sc.nextInt();
    int n = sc.nextInt();
    public static void printNN(int m,int n){
    for(int i=1;i<=m;i++){
    for(int j=1;j<=i;j++){
    System.out.print(j+"*"+i+"="+i*j+" ");
    }
    System.out.println();
    }
    }

    7:什么是函数重载?
    在同一个类中,方法名相同,参数列表不同。与返回值类型无关。
    参数列表不同:
    * 参数个数不同
    * 参数类型不同
    * 参数的顺序不同(算重载,但是在开发中不用)

  • 相关阅读:
    hdu 5119 Happy Matt Friends
    hdu 5128 The E-pang Palace
    hdu 5131 Song Jiang's rank list
    hdu 5135 Little Zu Chongzhi's Triangles
    hdu 5137 How Many Maos Does the Guanxi Worth
    hdu 5122 K.Bro Sorting
    Human Gene Functions
    Palindrome(最长公共子序列)
    A Simple problem
    Alignment ( 最长上升(下降)子序列 )
  • 原文地址:https://www.cnblogs.com/wanghongyun/p/9351651.html
Copyright © 2011-2022 走看看