Java/For循环/递归函数循环

首先:java的重点和难点,命名和缓存

  这次咱们的内容主要用到:

    命名规则:大小写字母,下划线,美元符号$,数字,且数字不能打头

    变量的声明:数据类型划分内存空间,命名,赋值

    方法的声明:修饰符列表,返回值,方法名,形参列表,方法体

  示例:

    1, 如果让你计算1~100的奇数和,偶数和,还有1~100的和;

    2, 还有1~N的和

    3, 九九乘法表

第一题,1~100的奇数和,偶数和,和

先用for循环写一个

  for循环,for循环的运行规则,for(表达式1,表达式2,表达式3),先执行表达式1,并且只执行一次,表达式2进行判断,如果正确,就接着运行下面的程序,运行完成后,循环到表达式3,然后再判断表达式2,一直到表达式2判断错误,就会终止循环的运行
            循环三要素:初始值(表达式1),终止条件(表达式2),步长(表达式3),表达式2必须为boolean类型

  public class For_Ji_Ou{              //用public声明一个类,并且每个java文件中可以有多个public,但是只能有一个用public修饰的类,这个类的类名必须和文件名一致
    public static void main(String[] args){    //main方法,可以说是所有程序都在main方法里执行的
        int ji = 0;        //用int数据类型,开辟个int长度大小的空间,并给这个空间起个名字叫ji,并给它赋值为0;
        int ou = 0;        //用int数据类型,开辟个int长度大小的空间,并给这个空间起个名字叫ou,并给它赋值为0;
        int sum = 0;        //用int数据类型,开辟个int长度大小的空间,并给这个空间起个名字叫sum,并给它赋值为0;
        for(int i=0; i <=100 ; i+=2){      //for循环,初始值为0,终止条件为=100,步长为2
            ou += i;      // ou是咱们已经声明好的一个变量, 让ou += i  首先+=是吧左右两个 数值相加,再把相加的值赋值给左面,大家已经知道什么意思了吧,就是每次循环出来的i都和ou相加,
        }
        System.out.println( "1-100的偶数和为: "+ou );    //输出  
        for(int i=1; i <=100 ; i+=2){      //初始值为1
            ji += i;
        }
        System.out.println( "1-100的奇数和为: "+ji );
        for(int i=0; i <=100 ; ++i){      //初始值为1,步长也为1
            sum += i;
        }
        System.out.println( "1-100的和为: "+sum );
    }
}
用if写

  if()  {   如果判断正确,就执行下面语句

    java语句

}else{  否则就执行下面语句

    java语句

}

public class If{
    public static void main(String[] args){
        int j = 0;    //跟上面for循环一样一样
        int o = 0;
        for(int i=0; i <=100 ; ++i){    //初始值为0,步长为1
            
        
        if (i % 2 == 1) {   //这里我们是算余数,如果除2余数为1,那就肯定是奇数了  对不对  我让奇数  执行下面语句
            j+=i;   // 每次都和i相加 再把值赋值给j
        }else{    //  余数不等于1   也就是偶数了  就执行下面语句
            o+=i;  // 每次都和i相加 再把值赋值给o
        }
    }
            System.out.println( "1-100的奇数和"+j );  //输出
            System.out.println( "1-100的偶数和"+o );  //输出
  }
}

第二题 用递归写一个1~N的和  

  首先什么是递归函数,就是跟for一样,是循环,函数的循环, 

什么是递归调用,就是函数自己调用自己

但是函数  不调用不执行,调用才执行,并且吧值返回到调用处

递归和循环都一样,有共同的三要素 :  初始值, 终止条件, 步长

public class Di_Gui{                //入口,public修饰的类
    public static void main(String[] args){     //main方法
        int s = 100;        //int数据类型声明变量 s   并赋值为100
        int q = a.m1(s);       //int数据类型声明q  并赋值  赋的值是一个函数的调用,首先先把函数运算完了,才能赋值吧,赋值完成后,才能进行下一步指令吧  因为java的运行时从上到下,从左往右执行的
        System.out.println( q );    //输出p
    }
}
class a {          //创建一个class类文件  为a
    public static int m1(int n){      // 创建一个m1方法,并且用 static修饰,所以这个方法是静态方法,静态方法的调用 : 类名.方法名();  如果在一个作用域就可以: 方法名();
        if (n==1) {       //如果n==1   就执行下面语句
            return 1;       //return  返回值,  返回值为1  就是如果运行到这一步,就把值赋值给m1,在终止整个函数
        }else{       //n不等于1的时候,就执行下面语句
            return n+m1(n-1);      //这是重点   返回值里面是个函数,我想返回值,得先把函数运行出来吧,而且这个函数,我传的实参是n-1,  而不是n了  这样不管n是多少,早晚有n到1的时候
        }
            
    }
}

return  n+m1(n-1);    运算大概顺序,看下面  
/*
   
    10+m1(9)+9+m1(8)+.....+m1(1)

假如上面s等于10的时候.是不是就等于m1(10);
    m1(10);当m1(10)时,值为= 10+m1(9)    最后再看后面的   =  10+9+8+7+6+5+4+3+2+1;                m1(9);当m1(9 )时,值为=  9 +m1(8)    最后再看后面的   =  9+8+7+6+5+4+3+2+1;
    m1(8) 当m1(8 )时,值为=  8 +m1(7)    最后再看后面的   =8+7+6+5+4+3+2+1;  
    m1(7) 当m1(7 )时,值为=  7 +m1(6)    最后再看后面的   =7+6+5+4+3+2+1;
    m1(6) 当m1(6 )时,值为=  6 +m1(5)    最后再看后面的   =6+5+4+3+2+1;
    m1(5) 当m1(5 )时,值为=  5 +m1(4)    最后再看后面的  =5+4+3+2+1;  
    m1(4) 当m1(4 )时,值为=  4 +m1(3)    最后再看后面的   =4+3+2+1;
    m1(3) 当m1(3 )时,值为=  3 +m1(2)    最后再看后面的   =3+2+1;
    m1(2) 当m1(2 )时,值为=  2 +m1(1)    最后再看后面的   =2+1;  
    m1(1) 当m1(1 )时,值为=  1   (因为当n=1是,返回值return 返回的是1  所以这里终止函数的运行,并把1 返回给m1)    
    */

第三题:九九乘法表

循环三要素 :  初始值, 终止条件, 步长

/*
    使用嵌套的for循环打印九九乘法表
        
        1*1=1
        2*1=2 2*2=4
        .......
        9*1=9...............9*9=81

行数和最大格子数相等
        
*/

public class For_Cheng_Fa_Biao{      //public修饰的类,并且只能有一个,不用说了吧
    public static void main(String[] args){   //main方法
        for(int i=1; i <=9 ; ++i){    //循环,  记住,循环没循环一遍,都会把里面的值全部运行完,才算循环了一遍,所以我这嵌套循环,每次外面那个循环循环一次,里面那个循环都会循环完;
            for(int j=1; j <= i ; ++j){    //终止条件,不能大于i
                System.out.print( j + "*" + i + "=" + (i*j) + " " );     //输出,结果为j*i=(j*i)  字符串里面的东西是直接输出的,并且字符串和值的连接符是 +
            }
            System.out.println(  );  //输出一个换行,不加的话,就会在一排过去,影响美观
        }
    }
}

行了 ,写完了,大家好好理解一下,递归函数那个返回值哪里,多理解一下,有哪里写的不好的,不对的,请多多指点一下

                                                      

                                                        绅士ゝ图图.

时间: 2024-11-05 20:47:49

Java/For循环/递归函数循环的相关文章

java学习之for循环

学编程吧java学习之for循环发布了,大家可以通过xuebiancheng8.com来访问 for循环是循环结构的一种. for循环的语法是 for(初始化变量:条件:迭代操作){ 循环操作: } 下面看这里例子: for(int a = 10;a<20;a++){ System.out.println(a); } 上面这个例子中,a=10为初始化条件,最先执行,而且只会执行一次,然后判断条件a<20,条件为真,从控制台打印a的值,打印完后执行+1操作,然后再次判断a<20,如果为真再

Java语言----三种循环语句的区别

------- android培训.java培训.期待与您交流! ---------- 第一种:for循环 循环结构for语句的格式: for(初始化表达式;条件表达式;循环后的操作表达式) { 循环体; } eg: 1 class Dome_For2{ 2 public static void main(String[] args) { 3 //System.out.println("Hello World!"); 4 //求1-10的偶数的和 5 int sum = 0; 6 fo

java学习之while循环

前面分析了java的流程控制分为选择结构,循环结构,其中循环结构分为while,do...while和for循环 下面来分析下循环结构中的while循环 java中为什么要有while循环呢.先看一个例子 现在要执行一万次i++操作怎么办呢, 要没有循环操作,我们就得执行写一万行i++操作.这样就浪费了大量时间.这个时候就可以使用循环语句来实现,只要简单的几行代码即可. while(i<=10000){ System.out.println(i); i++; } 上面这个例子就是while循环,

JAVA中的for-each循环与迭代

在学习java中的collection时注意到,collection层次的根接口Collection实现了Iterable<T>接口(位于java.lang包中),实现这个接口允许对象成为 "foreach" 语句的目标,而此接口中的唯一方法,实现的就是返回一个在一组 T 类型的元素上进行迭代的迭代器. 一.迭代器Iterator 接口:Iterator<T> 1 public interface Iterator<E>{ 2 3 boolean h

跳出Java当中的一些循环,跳出双层FOR循环

今天写代码写了个双层的for循环,里面还是用来Iterator,大致意思就是在第二个循环中如果符合条件就给跳出整个双层循环. 刚开始,直接使用break.巴拉巴拉的敲了一堆代码,信心满满的就直接运行.等到结果一看,这不是要我要的.哎··看来不扎实呀! 突然来了兴趣,索性就看看一些资料,总结了几种跳出循环的方式: 1.直接跳出循环: for (int i = 0; i < 10; i ++) { if(i == 4) { break; } System.out.println(i); } Syst

Java解惑三:循环之谜

谜题24 byte是有符号的,范围是-128 - 127.而0x90是int类型.比较的时候,不相等. 如果想让其相等,需要进行类型转换:(byte & 0xff) 或者 (byte)0x99. 谜题25 自增运算符对循环的影响.j = j++,先赋值. 谜题26 Integer.MAX_VALUE加一之后会变成Integer.MIN_VALUE,这对循环会有影响. 可以考虑使用long来表示i变量,或者使用效率更高的i != Integer.MAX_VALUE. 谜题27 (-1 <<

黑马程序员——java基础——选择、循环

-----------android培训.java培训.java学习型技术博客.期待与您交流!------------ 今天回顾了一下JAVA学习中的选择语句,循环语句,和数组,在JAVA中的选择语句和C语言中差不多有if.switch一个if语句由一个后跟到一到多个语句的布尔表达式组成.顺序结构的程序语句只能被执行一次.如果您想要同样的操作执行多次,,就需要使用循环结构. Java中有三种主要的循环结构: while循环 do…while循环 for循环 for循环的用法 先来说说哦For循环

第十九篇 Java语句中的循环介绍

大家好,相信大家都是冲着这名字来的吧,其实这只是我个人自学的一些心得,没多少高深的知识点,只适用于一些刚入门学习Java的人们随便看.好了 ,废话不多说了,下面就来说一下,今天我所学习到的新知识点吧. 其实要说今天我学到了多少 ,其实不多,就懂得了 Java中的一些循环语句,用我自己的语言来组织一下的话就是: Java中有许多的循环语句,为啥要有许多中呢,因为在不同的语句中所使用的循环语句就不一样,举个最简单的例子,日历所用的循环语句 和时间所用的循环语句就不一样了,至于为什么呢,就留给你们自己

Java控制语句——分支、循环、跳转

分支语句(if语句,switch语句): 循环语句(for,while,do...while); 跳转语句(break,continue,return): 分支语句(if语句,switch语句) if判断语句的格式: 格式1:适用于一种情况使用. if(判断的条件){ 符合条件执行的代码; } 格式2 : 适用于两种情况下去使用的. if(判断条件){ 符合条件执行的代码 }else{ 不符合条件执行的代码: } if-else 与三元运算符非常像: 三元运算符的优点: 结构比较简洁. 三元运算