zoukankan      html  css  js  c++  java
  • Java基础-循环(2)和方法

    循环的嵌套:

    循环体本身又是另一个循环的循环,就是循环的嵌套.

    外面的循环称为外层循环,里面的循环称为内层循环.

    //外层循环
    for( ){
        //内层循环
        for( ){
        
      }
    }

    外层循环的每次执行,内层循环都循环多次!

    循环嵌套的几种格式:

    for-for  for-while   while-while  while-for

    /*
    循环嵌套打印正三角形
    *
    **
    ***
    ****
    
        思考:重复的动作是?
            打印字符!!!
            规律:随着行数的增加,每行打印的字符也增加.(每行字符数和行数相同)
        
        练习:把行数做成用键盘录入数据
        
    */
    import java.util.Scanner;
    
    public class TrangleDemo{
        public static void main(String[] args){
            
            Scanner s = new Scanner(System.in);
            System.out.print("请输入要打印多少行: ");
            int k = s.nextInt();
            
            for(int i = 1;i<=k;i++){
                
                for(int j = 1;j<=i;j++){
                    
                    System.out.print("*");
                    
                }
                
                System.out.println();
                
            }
            
            
            
        }
    }
    View Code
    /*
    循环嵌套打印倒三角形(练习)
    ****
    ***
    **
    *
    
    分析:
    重复的操作是打印字符
    每行打印的字符数逐渐减少
    也就是内层循环的边界值在不断的减少.
    
    
    练习:打印的行数从键盘录入?
    
    
    */
    
    import java.util.Scanner;
    
    public class TrangleDemo2{
        public static void main(String[] args){
            
            Scanner s = new Scanner(System.in);
            System.out.print("请输入要打印的行数: ");
            int k = s.nextInt();
            
            for(int i = 0;i<=k;i++){
                
                for(int j = 1;j<=k-i;j++){
                    
                    System.out.print("@");
                }
                System.out.println();
            }
            
            
        }
        
    }
    View Code

    案列:

    打印99乘法表

    外层循环控制行数

    内层循环控制每行的表达式的个数

    特点:每行表达式的个数和行数相等

    /*
        打印99乘法表
    
    */
    /*
    public class ChengFaBiao{
        public static void main(String[] args){
            
            for(int i = 1;i<=9;i++){
                for(int j = 1;j<=i;j++){
                    
                    System.out.print(j + "x" + i + "=" + j*i + "	");
                }
                
                System.out.println();
            }
            
        }
    }
    */
    /*
        练习:99乘法表各个表达式之间用','分隔,每行最后一个表达式后不需要,
        1x2=2,2x2=4
        1x3=3,2x3=6,3x3=9
    
    */
    public class ChengFaBiao{
        public static void main(String[] args){
            
            for(int i = 1;i<=9;i++){
                for(int j = 1;j<=i;j++){
                    System.out.print(j + "x" + i + "=" + j*i);
                    if(j != i){
                        
                        System.out.print(",");
                    }
                    
                }
                
                System.out.println();
            }
            
        }
    }
    View Code

    break和continue 关键字:

    break 用于结束当前循环.

             当break在内层循环中时,可以使用标签跳出最外层的循环.

    continue 跳出continue之后的语句.进入下一次循环.

    产生随机数:

    Math类的random()方法可以生成一个[0.0 - 1.0)之间的double值.(左闭右开区间)

    Math 类是java程序默认导入的包,不需要显示导入. 直接使用即可.

    如:

             使用以下语句可以获取一个1-100之间的整型值:

             int r = (int)(Math.random()*100)+1;

    猜数字游戏:

    程序中产生一个随机数(1-100),从键盘上录入一个数,和随机数进行比较,并给出大小提示,直到和随机数相等,退出程序.

     1 //作业:给猜数字游戏加次数限制!
     2 import java.util.Scanner;
     3 
     4 public class HomeWork{
     5     public static void main(String[] args){
     6         
     7         int random = (int)(Math.random()*100) + 1;
     8         
     9         Scanner s = new Scanner(System.in);
    10         int count = 0;
    11         while(count < 5){
    12             System.out.println("输入一个int类型的值:(1-100)");
    13             int r = s.nextInt();
    14             
    15             //比较这两个数
    16             if(r > random){
    17                 System.out.println("猜的数大了!");
    18             }else if(r < random){
    19                 System.out.println("猜的数小了!");
    20             }else{
    21                 System.out.println("猜对了!");
    22                 break;
    23             }
    24             System.out.println("友情提示:您还有"+(4-count)+"次!");
    25             count += 1;
    26         }
    27     }
    28 }
    View Code

    获取任意范围的随机数值的方法:

    如:120-500之间的随机数

    (int)(Math.random()*(500-120+1)+120);

    /*
        如何获取任意范围内的一个随机数?
        例:120-500之间
        (int)(Math.random()*(500-120+1)+120);
    
        练习:键盘录入起始值和结束值,用程序获取一个期间的随机值!
    */
    import java.util.Scanner;
    
    public class GetRandomDemo{
        public static void main(String[] args){
            Scanner s = new Scanner(System.in);
            System.out.println("输入起始值: ");
            int start = s.nextInt();
            System.out.println("输入结束值: ");
            int end = s.nextInt();
            //
            int r = (int)(Math.random() * (end - start + 1) + start);
            //
            System.out.println(r);
        }
    }
    View Code

    方法定义

    修饰符  返回值类型  方法名(形参类型1 参数名1,形参类型2 参数名2,…){
        方法体;
        return[返回值];
    }

    修饰符: public static

    返回值类型: java中的数据类型

    方法名:符合命名规范

    形参类型,形参名:符合命名规范

    方法体:方法被调用时执行的语句

    return: 表示方法的结束.

             若返回值类型为void,return 后不能加任何东西,此时return;可以省略.

             若返回值类型不为void,则return不能省略,而且其后要接一个和返回值类型匹配的返回值(变量,常量,表达式)

    //无参,无返回值方法的定义
    public static void test1(){
        System.out.println("haha");
    }
    
    //有参,无返回值方法的定义
    public static void test2(String name){
        System.out.println("Hello " + name);
    }
    
    //有参有返回值方法的定义
    public static int add(int a,int b){
        int sum = a + b;
        return sum;
    }
    /*
        修饰符 返回值类型 方法名(形参类型 形参名1,形参类型 形参名2,...){
            方法体;
            return [变量,常量,表达式];
        }
        
    注意:
        方法定义在类中,和main方法平级!!!!方法不能嵌套定义!!!
        
        修饰符 : 目前固定写法:public static
        返回值类型:Java中的数据类型(基本数据类型,引用数据类型)
        方法名:合法的标识符
        形参列表:形参类型 形参名
        方法体:方法被调用时,执行的语句(方法不调用,不会自动执行!!!)
        return:返回:表明方法结束.若返回值类型为void,return 后什么都不能加,此时return
            可以省略.
                若返回值类型不是void,return不能省略,其后一定要跟一个和返回值类型匹配的值(或可以隐式转换的类型值)
                
        
    */
    public class MethodDemo{
        public static void main(String[] args){
            
            /*
            //方法不调用,不执行
            //方法调用的格式:
            //方法名(实参):方法调用时传递的参数称为实参!!方法定义时写的参数称为形参!!
            printHello();
            printHello();
            //main方法的return省略了,因为返回值类型是void.
            return ;
            */
            
            /*
            //调用有一个参数的方法
            String name = "abc";
            //调用方法时,传递类型和个数都匹配的参数.
            print(name);
            //可以直接传递常量
            print("tom");
            //传递表达式
            print("hello" + "123");
            
            */
            
            //调用带参,带返回值 的方法
            int a = 10;
            int b = 20;
            //实参之间用逗号分隔,不用加类型!!!
            int sum = add(a,b);
            System.out.println("a + b = " + sum);
            
        }
        //定义带参,带返回值的方法
        public static int add(int a,int b){
            //定义变量,接收两个数的和
            int sum = 0;
            sum = a + b;
            //必须返回一个和返回值类型匹配的值(变量,常量,表达式也行!!!)
            
            return sum;
            //以下的语句正确,但是没有意义.        
            // return a;
            // return 10;
            // return 1 + 3;
        }
        
        //定义方法,有一个参数,表示输出的内容
        public static void print(String name){
            //
            System.out.println("Hello " + name);
        }
        
        //自定义方法:在屏幕上输出一句话:世界你好
        public static void printHello(){
            //方法体
            System.out.println("世界你好");
            //
            // return ;
        }
    
    }
    View Code

    方法的调用

    方法不调用不执行!!!

    有返回值的方法的调用:

    1. 赋值或者直接打印
    2. 不理会返回值(单独调用)

    返回值类型为void的方法:

             只能单独调用!!!

    方法之间是相互调用的关系:

    自定义方法可以调用系统提供的方法,也可以调用自己定义的方法.

    /*
        方法的调用
        1.有返回值方法的调用
            ->使用返回值(赋值给变量,或者是打印)
            ->不理会返回值(单独调用)
        2.没有返回值方法的调用
            只能是单独调用
    */
    public class MethodDemo3{
        public static void main(String[] args){
            /*
            //把方法的返回值赋值给变量
            int res =doubleNum(2);
            System.out.println(res);
            */
            /*
            //直接放到打印语句中
            System.out.println(doubleNum(9));
            //System.out.println(18);
            */
            //返回值为void类型的方法,只能单独调用
            print();
            //System.out.println(print()); 错误: 此处不允许使用 '空' 类型
            //自定义方法之间相互调用
            test2();
            
        }
        
        //自定义方法
        public static void test1(){
            System.out.println("test1()被调用");
            
        }
        public static void test2(){
            //调用自定义方法
            test1();
            System.out.println("test2()被调用");
        }
        
        //带返回值的方法
        public static int doubleNum(int i){
            System.out.println("你传递的参数是:" +i);
            return i*2;
        }
        public static void print(){
            System.out.println("hello");
        }
        
    }
    View Code

    方法的作用:

    1. 将有一定业务逻辑的代码封装在一起
    2. 实现了代码的复用,方法调用的次数越多,节省的代码量就越多
    3. 方便维护
    /*
        方法实现了代码的封装!!
        主要的作用是实现了代码的复用!!!
        提高代码的可维护性!!
    */
    public class MethodDemo2{
        public static void main(String[] args){
            print99();
            
        }
        //定义打印99乘法表的方法
        public static void print99(){
            for(int i = 1;i<=9;i++){
                for(int j = 1;j<=i;j++){
                    System.out.print(j+"x"+i+"="+(i*j)+"	");
                }
                System.out.println();
            }
            
        }
    }
    View Code
  • 相关阅读:
    Android布局优化
    Handler原理
    最少钱币数:
    ASCII码排序
    Fibonacci数
    奇偶数分离
    认识Dom
    js浏览器对象
    返回/设置时间方法与 Math对象
    window.open
  • 原文地址:https://www.cnblogs.com/Z-xiaoshuai/p/9507519.html
Copyright © 2011-2022 走看看