• 语句结构


    1.数据输入

    1.1 数据输入

    1.2 Scanner使用的基本步骤

    1. 导包

      import java.util.Scanner;//导包的动作必须出现在类定义的上边
      
    2. 创建对象

      Scanner sc=new Scanner(System.in);//这个格式里面,只有sc是变量名可以变,其他都不允许变。
      
    3. 接收数据

    int i=sc.nextInt();//这个格式里面,只有i是变量名,可以变,其他的都不允许变。
    

    案例1:三个和尚

    需求:一个寺庙里住着三个和尚,他们的身高必须经过测量得出(即身高未知),请用程序员实现获取这三个和尚的最高身高。

    import java.util.Scanner;//导包
    public class ThreeMonks {
        public static void main(String[] args){
            Scanner sc=new Scanner(System.in);//创建对象
            System.out.println("请输入和尚1的身高值:");
            int height1=sc.nextInt();
            System.out.println("请输入和尚2的身高值:");
            int height2=sc.nextInt();
            System.out.println("请输入和尚3的身高值:");
            int height3=sc.nextInt();
            int tempHeight=height1>height2?height1 :height2 ;
            int maxHeight=tempHeight >height3 ?tempHeight :height3 ;
            System.out.println("三个和尚最高身高为:"+maxHeight +"cm");
        }
    }
    

    2.分支语句

    2.1流程控制

    分类:

    • 顺序结构
    • 分支结构(if,switch)
    • 循环结构(for,while,do…while)

    2.2顺序结构

    顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序依次执行,程序中大多数的代码都是这样执行的。

    2.3 if语句

    格式1:

    if(关系表达式){
        语句体;
    }
    

    格式2:

    if(关系表达式){
        语句体1;
    }else{
        语句体2;
    }
    

    案例2:奇偶数

    需求:任意给出一个整数,请用程序实现判断该整数是奇数还是偶数,并在控制台输出结果。

    import java.util.Scanner;//导包
    public class OddAndEvenNumber {
        public static void main(String[] args){
            //创建对象
            Scanner sc=new Scanner(System.in);
            System.out.println("请输入数据:");
            //接收数据
            int num=sc.nextInt();
            if(num%2==0){
                System.out.println(num+"是偶数");
            }
            else{
                System.out.println(num+"是奇数");
            }
        }
    }
    

    格式3:

    if(关系表达式1){
        语句体1;
    }else if(关系表达式2){
        语句体2;
    }
    ……
    else{
        语句体n+1;
    }
    

    案例3:考试奖励

    需求:小明快要期末考试了,小明爸爸对他说,会根据他不同的考试成绩,送给他不同的礼物,假如你可以控制小明的得分,请用程序实现小明到底会获得什么样的礼物,并在控制台输出。

    95-100:一辆新自行车

    90-94分:去游乐园玩

    80-89分:一个变形金刚

    80分以下:揍一顿

    import java.util.Scanner;//导包
    public class ExamReward {
        public static void main(String[] args){
            //创建数据
            Scanner sc=new Scanner(System.in);
            System.out.println("请输入小明的得分:");
            //接收数据
            int score=sc.nextInt();
            System.out.println("小明获得的奖励是:");
            if(score>100||score<0){
                System.out.println("输入数据有误!!!");
            }else if(score>=95&&score<=100){
                System.out.println("一辆自行车");
            }else if(score>=90&&score<=94){
                System.out.println("去游乐园玩");
            }
            else if(score>=80&&score<=89){
                System.out.println("变形金刚");
            }else{
                System.out.println("揍一顿!");
            }
        }
    }
    

    数据测试

    测试:正确数据,错误数据,边界数据

    2.4 switch语句

    格式:

    switch(表达式){
        case 值1:
            语句体1;
            break;
        case 值2:
            语句体2;
            break;
            ……
                default:
            语句体n+1;
            [break;]
    }
    

    执行流程:

    1. 计算表达式的值
    2. 依次和case后面的值进行比较,如果有对应的值,就会执行相应的语句,执行过程中遇到break结束。
    3. 如果所有的case后面的值和表达式的值都不匹配,就会执行default里面的语句体,然后程序结束掉。
    import java.util.Scanner;
    public class SwitchDemo {
        public static void main(String[] args){
            Scanner sc=new Scanner(System.in);
            int week=sc.nextInt();
            switch(week){
                case 1:
                    System.out.println("星期一");
                    break;
                case 2:
                    System.out.println("星期二");
                    break;
                case 3:
                    System.out.println("星期三");
                    break;
                case 4:
                    System.out.println("星期四");
                    break;
                case 5:
                    System.out.println("星期五");
                    break;
                case 6:
                    System.out.println("星期六");
                    break;
                case 7:
                    System.out.println("星期日");
                    break;
                default:
                    System.out.println("输入错误值!!!");
                    break;
            }
        }
    }
    

    案例4:春夏秋冬

    需求:一年有12个月,分属春夏秋冬4个季节,键盘录入一个月份,请用程序实现判断该月份属于哪个季节,并输出结果。

    春:3、4、5

    夏:6、7、8

    秋:9、10、11

    冬:1、2、12

    import java.util.Scanner;
    public class Season {
        public static void main(String[] args){
            Scanner sc=new Scanner(System.in);
            System.out.println("请输入月份:");
            int season=sc.nextInt();
            switch(season){
                case 1:
                    System.out.println("冬季");
                    break;
                case 2:
                    System.out.println("冬季");
                    break;
                case 3:
                    System.out.println("春季");
                    break;
                case 4:
                    System.out.println("春季");
                    break;
                case 5:
                    System.out.println("春季");
                    break;
                case 6:
                    System.out.println("夏季");
                    break;
                case 7:
                    System.out.println("夏季");
                    break;
                case 8:
                    System.out.println("夏季");
                    break;
                case 9:
                    System.out.println("秋季");
                    break;
                case 10:
                    System.out.println("秋季");
                    break;
                case 11:
                    System.out.println("秋季");
                    break;
                case 12:
                    System.out.println("冬季");
                    break;
                default:
                    System.out.println("输入了错误的月份!!!");
                    break;
    
            }
        }
    }
    
    //case穿透
            switch(season){
            case 1:
            case 2:
            case 12:
                System.out.println("冬季");
                break;
            case 3:
            case 4:
            case 5:
                System.out.println("春季");
                break;
            case 6:
            case 7:
            case 8:
                 System.out.println("夏季");
                 break;
            case 9:
            case 10:
            case 11:
                 System.out.println("秋季");
                 break;
            default:
                 System.out.println("输入了错误的月份!!!");
                 break;
            }
    

    注意事项:在switch语句中,如果case控制的语句体后面不写break,将会出现穿透现象,在不判断下一个case值得情况下,向下运行,直到遇到break,或者整体switch语句结束。

    3.循环语句

    3.1循环结构

    特征:

    • 重复做某件事情
    • 具有明确的开始和停止标志

    循环结构的组成:

    1. 初始化语句:用于表示循环开启时的起始状态,简单说就是循环开始的时候什么样。
    2. 条件判断语句:用于表示循环反复执行的条件,简单说就是判断循环是否能一直执行下去。
    3. 循环体语句:用于表示循环反复执行的内容,简单说就是循环反复执行的事情。
    4. 条件控制语句:用于表示循环执行中每次变化的内容,简单说就是控制循环是否能执行下去。

    循环结构对应的语法:

    1. 初始化语句:一条或多条语句,这些语句可以完成一些初始化操作。
    2. 条件判断语句:这里使用一个结果值为boolean类型的表达式,这个表达式能决定是否执行循环体,如a<3。
    3. 循环语句:这里可以是任意语句,这些语句将反复执行。
    4. 条件控制语句:这里通常是使用一条语句来改变变量的值,从而达到控制循环是否继续向下执行的效果,常见i++,i--这样的操作。

    3.2 for循环语句

    //格式
    for(初始化语句;条件判断语句;条件控制语句){
        循环体语句;
    }
    

    案例5:输出数据

    需求:在控制台输出1-5和5-1的数据

    public class PrintNumber {
        public static void main(String[] args){
            for(int i=1;i<=5;i++){
                System.out.println(i);
            }
            for(int j=5;j>=1;j--){
                System.out.println(j);
            }
        }
    }
    

    案例6:求和

    需求:求1-5之间的数据和,并把求和结果在控制台输出。

    public class Summation {
        public static void main(String[] args){
            int sum=0;
            for(int i=1;i<=5;i++){
                sum+=i;
            }
            System.out.println("1~5之间的数据和为:"+sum);
        }
    }
    

    案例7:求偶数和

    需求:求1-100之间的偶数和,并把求和结果在控制台输出。

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

    案例8:水仙花数

    需求:在控制台输出所有的水仙花数。

    水仙花数:

    1. 是一个三位数
    2. 水仙花数的个位、十位、百位的数字立方和等于原数。
    public class DaffodilsNumber {
        public static void main(String[] args){
            System.out.println("水仙花数有;");
            for(int i=100;i<=999;i++){
               int  a=i%10;
               int b=i/10%10;
               int c=i/100%10;
               if(a*a*a+b*b*b+c*c*c==i){
                   System.out.println(i);
               }
            }
        }
    }
    

    案例9:统计水仙花个数

    需求:统计水仙花数的个数,并输出水仙花个数。

    //统计水仙花数的个数
    int count=0;
    for(int i=100;i<=999;i++){
       int  a=i%10;
       int b=i/10%10;
       int c=i/100%10;
       if(a*a*a+b*b*b+c*c*c==i){
           count++;
       }
    }
    System.out.println("水仙花数个数有:"+count+"个");
    

    3.3while循环语句

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

    案例10:珠穆朗玛峰

    需求:世界上最高山峰是珠穆朗玛峰(8844.43米=8844430毫米),假如我有一张足够大的纸,它的厚度是0.1毫米。请问,我折叠多少次,可以折成珠穆朗玛峰的高度?

    public class Qomolangma {
        public static void main(String[] args){
            double height=0.1;
            int count=0;
            while(height<=8844430){
                height*=2;
                count++;
            }
            System.out.println("折叠"+count+"次");
        }
    }
    

    3.4 do …while循环语句

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

    3.5三种循环的区别

    • for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行)
    • do……while循环先执行依次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)

    3.6 for和while的区别

    • 条件控制语句所控制的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能被再次访问到了
    • 条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用。

    4.跳转控制语句

    continue:用在循环中,基于条件控制,跳过某次循环体内容的执行,继续下一次的执行。

    break:用在循环中,基于条件控制,终止循环体内容的执行,也就是说结束当前的整个循环。

    5.循环嵌套

    //在控制台输出一天的24小时,每小时60分钟
    public class HourMinute {
        public static void main(String[] args){
            for(int hour=0;hour<24;hour++){
                for( int minute=0;minute<60;minute++){
                    System.out.println(hour+"时"+minute+"分");
                }
            }
        }
    }
    

    6.Random

    Random的作用:用于获取一个随机数

    使用步骤:

    1. 导包

      import java.util.Random;//导包的动作必须出现在类定义的上面
      
    2. 创建对象

      Random r=new Random();//这个格式里面,只有r是变量名可以变,其他的都不允许变
      
    3. 获取随机数

      int number=r.nextInt(10);//获取数据的范围:[0,10),包括0不包括10;
      //这个格式里面,只有number是变量名可以变,数字10可以变,其他的都不允许变
      
      //获取0~10内的一个随机数
      import java.util.Random;//导包
      public class RandomDemo {
          public static void main(String[] args){
              //创建对象
              Random r=new Random();
              //获取随机数
              int number=r.nextInt(10);
              System.out.println("Number:"+number);
          }
      }
      
      //获取10个随机数
      import java.util.Random;//导包
      public class RandomDemo {
          public static void main(String[] args){
              //创建对象
              Random r=new Random();
              for(int i=1;i<=10;i++){
                  //获取随机数
                  int number=r.nextInt(10);
                  System.out.println("Number:"+number);
              }
          }
      }
      
       //获取一个1~100之间的随机数
      import java.util.Random;//导包
      public class RandomDemo {
          public static void main(String[] args){
              //创建对象
              Random r=new Random();
              //获取随机数
              int number=r.nextInt(100)+1;
              System.out.println("Number:"+number);
      
          }
      }
      

    案例11:猜数字

    需求:程序自动生成一个1-100之间的数字,使用程序实现猜出这个数字是多少?

    当猜错的时候根据不同情况给出相应的提示:

    • 如果猜的数字比真实数字大,提示你猜的数据大了;
    • 如果猜的数字比真实数字小,提示你猜的数据小了;
    • 如果猜的数字与真实数字相等,提示恭喜你答对了;
    import java.util.Scanner;//导包
    import java.util.Random;
    public class GuessNumber {
        public static void main(String[] args){
            //创建对象
            Scanner sc=new Scanner(System.in);
            Random r=new Random();
            int number=r.nextInt(100)+1;//获取数字
            System.out.println("猜猜我是谁?(1~100)");
            int getNumber=sc.nextInt();
            while(getNumber!=number) {
                if (getNumber > number) {
                    System.out.println("你猜大啦!");
                    getNumber = sc.nextInt();
                } else if (getNumber<number) {
                        System.out.println("你猜小啦!");
                getNumber = sc.nextInt();
                }
            }
            System.out.println("恭喜你猜中啦!");
        }
    }
    
  • 相关阅读:
    angular2学习
    随笔
    angular 中ng-repeat后ng-click失效
    一个hover效果
    获取屏幕高度
    延时加载 lazyload使用技巧
    关于MVC模板渲染的一点小事type="text/template"
    JsRender实用教程(tag else使用、循环嵌套访问父级数据)
    jQuery Validate 插件为表单提供了强大的验证功能
    日期时间选择器bootstrap-datetimepicker表单组件
  • 原文地址:https://www.cnblogs.com/SZYJY/p/16078004.html
Copyright © 2020-2023  润新知