java语法基础-04

一、Scanner控制台录入

  • 控制台录入int类型

程序:请输入您的年龄?
用户:33
程序:经过大数据计算,您的寿命还有 xxx 天!

    public static void main(String[] args) {
        //1.创建Scanner类的对象
        Scanner sc = new Scanner(System.in);
        //2.提示用户输入年龄?
        System.out.println("程序:请输入您的年龄?");
        //3.接收用户输入的年龄
        int age = sc.nextInt();
        System.out.println("程序:你的时间还有"+(70-age)*365+"天,珍惜时间!");
    }
  • 案例2:

程序:请输入加密前的4位数字?
用户:1357
程序:加密后,这个4位数字是 2086

   public static void main(String[] args) {
        //1.创建Scanner类的对象
        Scanner sc=new Scanner(System.in);
        //2.提示用户输入一个4位数字
        System.out.println("程序:请输入一个4位的整数!");
        //3.接收4位数字,进行计算!
        int number = sc.nextInt();
        /*
        *每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换
        *  考察的是给你一个4位数字,怎么求个位十位百位千位?
        *
        * */
        //个位  number  1357
        int  d = number % 10;
        //十位
        int  c = number/10 % 10;
        //百位
        int  b = number/100%10;
        //千位
        int  a = number/1000;

        //加5%10
        d=(d+5)%10;
        c=(c+5)%10;
        b=(b+5)%10;
        a=(a+5)%10;

        number = d * 1000 + c * 100 + b * 10 + a;
        System.out.println("程序:加密后的结果是:"+number);
    }
  • 控制台录入double类型 案例:BMI计算器

程序:请输入您的身高?(m)
用户:1.78
程序:请输入您的体重?(kg)
用户:98
程序:经过计算
     正常指数应该是 18~24
     您的BMI指数是 30.45

   public static void main(String[] args) {
        //1.创建Scanner类的对象
        Scanner sc = new Scanner(System.in);
        //2.提示用户输入身高?
        System.out.println("程序:请输入您的身高?(m)");
        //3.接收用户输入的身高
        double high = sc.nextDouble();
        //4.提示用户输入体重
        System.out.println("程序:请输入您的体重?(kg)");
        //5.接收用户输入的体重
        double weight = sc.nextDouble();
        //6.bmi计算公式=体重(公斤) ÷ 身高(米)的平方
        double bmi = weight/(high*high);
        //7.输出结果
        System.out.println("程序:正常的bmi指数是19~24之间,而您的bmi指数是"+bmi+"!");

    }
  • 控制台录入String类型 案例:

客服:您好,请告诉我您要办理的业务?
用户:我不好,不办理!
客服:您的意思是,我不好,不办理?确定吗!

  public static void main(String[] args) {
        //1.创建Scanner类的对象
        // Ctrl + Alt + v  快速返回
        Scanner sc = new Scanner(System.in);
        //2.提示用户输入
        System.out.println("客服:您好,请告诉我您要办理的业务?");
        //3.接收用户输入内容
        String speak = sc.next();
        //4.输出结果
        System.out.println("客服:您的意思是,"+speak+",确定吗?");


    }


二、选择语句

  • if语句

语法:if(条件表达式){ if执行体 }
if 如果,关键字
条件表达式:只要结果是booelan类型字面值
if执行体: 可以写任意的内容(定义变量,输出语句,流程控制语句)

案例:
  程序:请输入成绩?
  用户:59.9  
  程序:您考试不及格,回家等着挨揍去吧!

    public static void main(String[] args) {
        //1.创建Scanner类的对象
        Scanner sc = new Scanner(System.in);
        //2.提示用户输入成绩?
        System.out.println("系统:请输入您的考试成绩?");
        //3.接收用户输入的成绩
        double score = sc.nextDouble();
        //4.判断
        if(score<60){
            System.out.println("系统:回家挨揍去吧!");
        }
    }

if语句要注意的问题:
    1. if()后面千万不要加分号,因为它不报错!
        
    2. 省略大括号
        2.1 只能有一句
        2.2 这句不能定义变量
        大括号作用是规范变量的作用域,也就是说,在哪对大括号定义的变量,就只能在这对大括号里使用!

  • if-else语句

语法:if(条件表达式){if体}else{else体}

if(如果)-else(否则) 都是关键字

理解:条件表达式如果成立,执行if体
     否则,执行else体
     
案例:
  程序:请输入成绩?
  用户:59.9  /  65.2
  程序:您考试不及格,回家等着挨揍去吧!/您考试及格,回家等着去游乐场!

    public static void main(String[] args) {
        //1.创建Scanner类的对象
        Scanner sc = new Scanner(System.in);
        //2.提示用户输入成绩
        System.out.println("系统:请输入您的考试成绩?");
        //3.接收用户输入的成绩
        double score = sc.nextDouble();
        //4.判断
        if(score>60){
            System.out.println("系统:你爸带你去游乐场!");
        }else {
            System.out.println("系统:回去挨揍吧!");
        }
        
System.out.println(score>=60 ? "系统:带你去游乐场!":"系统:回去挨揍吧!");
    }
  • if-else-if语句

语法:
       if(条件1){if执行体1}
  else if(条件2){if执行体2}
  else if(条件3){if执行体3}
...
  else{else执行体}
  
  
理解:条件表达式1如果不成立  继续判断条件表达式2 ,如果还不成立,继续判断条件式3...只要有一个成立,执行相应的if执行体,如果所有的条件表达式都不成立,执行else体!

控制台输入身高体重,告诉用户的情况!

偏瘦  ~ ≤ 18.5
正常 18.5 ≤ 24.0
过重 24.0 ≤ 28.0
肥胖 28.0 ≤ ~

 public static void main(String[] args) {
        //1.创建Scanner类的对象
        Scanner sc = new Scanner(System.in);
        //2.提示用户输入身高
        System.out.println("系统:请输入您的身高?(m)");
        //3.接收身高
        double high = sc.nextDouble();
        //4.提示用户输入体重
        System.out.println("系统:请输入您的体重?(kg)");
        //5.接收体重
        double weight = sc.nextDouble();
        //6.计算BMI
        double bmi = weight / (high * high);
        //7.判断(多种情况)
        /*
偏瘦  ~ ≤ 18.5
正常 18.5 ≤ 24.0
过重 24.0 ≤ 28.0
肥胖 28.0 ≤ ~
        *
        * */
        if (bmi <= 18.5) {
            System.out.println("系统:您偏瘦,多吃肉!");
        } else if (bmi <= 24) {
            System.out.println("系统:您正常,继续保持!");
        } else if (bmi <= 28) {
            System.out.println("系统:您过重,少吃肉!");
        } else {
            System.out.println("系统:您肥胖,少吃肉,多锻炼!");
        }
    }

  • switch语句

语法:
switch(字面值){
   
   case 字面值1:
     任意语句
   break;
   case 字面值2:
     任意语句
   break;
   case 字面值3:
     任意语句
   break;
     ...
   default :
    任意语句
}

关键字:switch 开关   case 情况/可能  break 结束switch语句
       default 默认的,相当于else


理解:
switch的字面值和哪个case的字面值相等,就执行相应的语句
如果都不等,执行default的语句!
 

  • 案例1:

日计划表

周一 ----------写代码
周二 ----------爬山
周三 ----------约会
周四 ----------看电影
周五 ----------钓鱼

控制台输入1~5,表示周一到周五,做出相应的计划!

  public static void main(String[] args) {
        //1.创建Scanner类的对象
        Scanner sc = new Scanner(System.in);
        //2.提示用户输入1~5
        System.out.println("系统:请输入1~5,查看日计划!");
        //3.接收用户输入的数字
        int i = sc.nextInt();
        //4.判断
        switch (i){
            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;
            default:
                System.out.println("系统:请输入正确的1~5!");
        }
    }

switch语句注意的问题:
    
    1.case穿透(没写break)

   public static void main(String[] args) {
        switch (300){
            default:
                System.out.println("系统:请输入正确的1~5!");
            case 1:
                System.out.println("周一,写代码");
            case 2:
                System.out.println("周二,爬山");
            case 3:
                System.out.println("周三,约会");
            case 4:
                System.out.println("周四,看电影");
            case 5:
                System.out.println("周五,钓鱼");
        }
    }

2.case并列
    控制台输入月份,相应的季节输出!
    
    春天--------3 4 5
    夏天--------6 7 8
    秋天--------9 10 11
    冬天--------12 1 2

  public static void main(String[] args) {
        //1.创建Scanner类的对象
        Scanner sc = new Scanner(System.in);
        //2.提示用户输入月份
        System.out.println("系统:请输入月份?");
        //3.接收月份
        int month = sc.nextInt();
        //4.判断
        switch (month){
            case 3: case 4: case 5:
                System.out.println("春天!");
                break;
            case 12: case 1: case 2:
                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("系统:请输入地球中国的月份!!!1~12");
        }
    }

三、循环语句

  • for

语法:for(初始表达式;条件表达式;迭代语句){ 循环体 }

初始表达式:定义有初始值的变量
条件表达式:只要结果是boolean类型的字面值
迭代语句  : ++ -- += *= 
循环体    : 任何内容(输出语句,定义变量,流程控制语句)

理解:先执行初始表达式,然后进行条件判断,如果成立,执行循环体,然后再进行迭代语句,然后继续判断条件,如果还成立,继续执行循环体,继续迭代语句,然后继续判断...条件表达式不成立,程序立刻结束!

案例:输出5次HelloWorld
 

   public static void main(String[] args) {
        for(int i=1;i<=5;i++){
            System.out.println("HelloWorld!");
        }
    }



for循环的其他写法:
   1. 扩大初始表达式的作用域

 public static void main(String[] args) {

        //int i =1; 它作用域是循环体

        int i=1;
        for(;i<=5;i++){
            System.out.println(i);
        }
            System.out.println("i最终是:"+i);  
    }
}

    

        
        int i;
        for(i=1;i<=5;i++){
            System.out.println(i);
        }
            System.out.println("i最终是:"+i);
    
    

//错误的示范!!!!!!!!!!!!!!!!
   int i=1;
        for(i;i<=5;i++){

            System.out.println(i);
        }

            System.out.println("i最终是:"+i);


2. 初始表达式恒成立(死循环)

 public static void main(String[] args) {
        // for(int i=1;true;i++){
        //     System.out.println(i);
        // }

        // for(int i=1;1==1;i++){
        //     System.out.println(i);
        // }
        for(int i=1;;i++){
            System.out.println(i);
        }

    }


3.迭代语句多样化

 public static void main(String[] args) {
        for(int i=1;i<=10; ){
            i+=3;
            System.out.println(i);
        }
    }



4. 多个初始表达式,多个迭代语句

public static void main(String[] args) {
        for(int a=1,b=10;a<b;a++,b--){
            System.out.println(a+"-----------------"+b);
        }
    }






    

  • while

语法:while(条件表达式){ 循环体 }

理解:条件表达式成立,执行循环体,然后继续判断条件表达式,如果还成立,继续执行循环体,继续判断,直到条件表达式不成立为止!
 

 
//案例:输出5次HelloWorld
 public static void main(String[] args) {
        int i=1;
        while (i<=5){
            System.out.println("HelloWorld");
            i++;
        }
    }



其他写法:
    
    迭代语句和条件组合

  public static void main(String[] args) {
        int i=1;
        while (++i<=5){
            System.out.println("HelloWorld");
        }
    }
  • do-while

语法:do{循环体}while(条件表达式);
理解:先执行循环体,然后再条件判断,如果成立,继续循环体。。。直到不成立为止!

注意:即使条件表达式第一次就不成立,循环体也会执行一次!
 

   public static void main(String[] args) {
        int i=5;
        do{
            i--;
            System.out.println("HelloWorld");
        }while (i>=1);
    }


案例:输出5次HelloWorld

总结:

for  while do-while都可以省略


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

        System.out.println("-----------");
        int x=1;
        do
            System.out.println( x++);
        while (x<=5);
        
    }


2.for,while,do-while区别?

for和 while、do-while  比较
        for是封闭的独立的循环,使用更多!
        
    while和do-while  比较
        如果条件表达式第一次就不成立,那么do-while也会执行一次循环体

四、嵌套问题

  • 案例 :登录案例!
 public static void main(String[] args) {
        //1.创建Scanner类的对象
        Scanner sc = new Scanner(System.in);
        //2.提示用户输入用户名
        System.out.println("系统:请输入用户名?");
        //3.接收用户名
        int username = sc.nextInt();
        //4.if-else语句
        if (888 == username) {
            //5.提示用户输入
            System.out.println("系统:请输入密码?");
            //6.接收密码
            int password = sc.nextInt();
            //7.if-else判断
            if (666 == password) {
                System.out.println("系统:登录成功,欢迎xxx!");
            } else {
                System.out.println("系统:密码错误。。。。");
            }

        } else {

            System.out.println("系统:用户名不存在。。。");
        }

    }
  • 循环嵌套选择.
    public static void main(String[] args) {
        for(int i=1;i<=100;i++){
            //i除以2的余数是0
            if (i%2==0) {
                System.out.println(i);
            }

        }
    }
  • 循环嵌套循环

案例:打印长方形!

***
***
***

//打印一颗星

System.out.println("*");




* print和println

println 先输出后换行
print   只输出,不换行

----
println()表示换行
print()不写报错


/   斜杠
\   反斜杠 (转义符)

 打印一行星

   public static void main(String[] args) {
        //打印一行星(循环)
        System.out.print("😂");
        System.out.print("😂");
        System.out.print("😂");
        System.out.print("😂");
        System.out.println();
        System.out.println("================");
          for(int i=1;i<=4;i++){
              System.out.print("😂");
          }
              System.out.println();

    }


打印三行

       public static void main(String[] args) {
        //打印三行星

        for(int i=1;i<=4;i++){
            System.out.print("😂");
        }
         System.out.println();

        for(int i=1;i<=4;i++){
            System.out.print("😂");
        }
         System.out.println();

        for(int i=1;i<=4;i++){
            System.out.print("😂");
        }
         System.out.println();

        System.out.println("-------------------------");

        for(int j=1;j<=3;j++){
            //打印一航星,换行
            for(int i=1;i<=4;i++){
                System.out.print("😂");
            }
            System.out.println();
        }
    }
   
///
//多层循环嵌套,从内往外看!!!




  public static void main(String[] args) {
        // System.out.println(""");
        System.out.println('"');
        //System.out.println(''');
        System.out.println("'");
        //  \ 转义符,把原来的意思转换成其他意思
        System.out.println("\"");
        System.out.println('\'');
        System.out.println("\\");
        System.out.println("小明\t小红");
        System.out.println("小明\n小红");
        System.out.println('\u4e2d');
    }

五、continue、break、return关键字

continue  只能用于循环,结束当次循环,继续进行下一次循环!

break 
  1.用于switch语句,结束整个switch
  2.用于循环语句,结束整个循环(如果两个循环嵌套,break只能结束它所在的那个循环)
  
return  结束当前的方法

 public static void main(String[] args) {
        System.out.println("程序开始================");
        for(int i=1;i<=10;i++){
            if (i==5) {
                return;
            }

            System.out.println(i);
        }
        System.out.println("程序结束================");
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值