阅读 44

转行学Java的第3天:if 条件判断,想做一个时间刺客

我是张骚年,量子玄学信徒,祖安冲浪王者,B站白嫖大师,撕少保护协会资深会员,一个没有感情的表情包机器。

应届二本物理找不到工作,准备用五个月转行Java”上流社会“

前言

image.png

已经三天没有更新了,也不是不学了,也不是不写了,只是因为五一外出进行了一下“多人运动”(旅游),没有做好时间管理,耽误了学习。

三天没学,前面学的也忘了差不多,从此深刻的体会到了时间管理的重要性,和学习比起来,黑眼圈又算的了什么?

哎 好想做一个“时间刺客”,掌控自己的时间,毕竟凌晨四点也是可以更新掘金的。


今日学习目标


今天先复习之前的学习内容,然后学习if的条件判断的使用,多做练习题。

今日学习难点



学习笔记 重点总结

学习笔记—局部变量


局部变量的概念


定义在函数的内部的变量

局部变量的特点

  • 局部变量必须先赋值后使用
  • 从定义开始,到定义它的代码块结束
  • 在重合作用范围内,不允许定义同名的变量(避免命名冲突)
class Day03{
    public static void main(String[] args) {
        {
//            局部变量 a  作用范围到所在代码块结束
            int a = 1;
            System.out.println(a);
        }
        System.out.println("----------");
        {
//            局部变量必须先赋值后使用
            int a ;
//            此时还不能打印 因为没有赋值
//            System.out.println(a);

            a = 2;
            // 此时可以正常使用 已经赋值了
            System.out.println(a);
        }
    }
}
复制代码

学习笔记—Scanner 和 导包

扫描器的使用
**
局部变量需要先赋值后使用,给变量赋值有两种方式:

  • 在代码中,创建变量的时候直接赋值
  • 借助扫描器(Scanner)通过键盘输入值

public class Day03 {
    public static void main(String[] args) {
        // 1.创建一个扫描器
        java.util.Scanner sc=new java.util.Scanner(System.in);

        // 2.输入a的值  nextInt() 接受键盘输入的整数
        int a = sc.nextInt();

        // 3.打印a
        System.out.println(a);
    }
}


----------------- Scanner 其他的方法 -------------------------
//输入一个小数
double d = sc.nextDouble();   
//输入一个字符串
String s = sc.next();  
//输入一个字符
char c = sc.next().charAt(0);   
复制代码


导包
image.png
Scanner是java.util包的,那么java.util. 可以简写吗?通过导包语法

导包语法:

  • import 包名1.包名2.类名;      //只导入包中的一个类
  • import 包名1.包名2.*;           //导入包中的所有类
import java.util.*;

import java.util.Scanner;

复制代码


注意:

  • import 语句位于package语句之后
  • java.lang 包中的内容,例如String,会自动导入,不需要写import

学习笔记—条件分支**

基本if结构

执行流程:先判断布尔条件结果是否为true,是true,则执行其后{}中的代码块;
否则跳过代码块,执行if结构之后的语句。 

if(布尔表达式){             
     //代码块        
 } 


if else 结构

执行流程:先判断布尔条件结果是否为true,是true,则执行if后{}中的代码块1;  
否则执行else后{}中的代码块2
不管执行哪个代码块,都要执行if...else...结构之后的内容。

if(布尔表达式){               
      //代码块1...           
else{             
     //代码块2...       
}

多重if结构

执行流程:
如果布尔条件1成立,则执行代码块1的内容;
如果布尔条件2成立,则执行代码块2的内容;
如果条件3成立,则执行代码块3中的内容;
如果布尔条件都不成立,则执行代码块4的内容

if (布尔条件1){                
 //代码块1.....            
else if(布尔条件2){        
//代码块2....        
else if(布尔条件3){        
//代码块3....      
else {                              
//代码块4....         
}    

嵌套if结构
执行流程:先判断外层条件,成立,则再判断内层条件。
if(布尔条件1){          
       if (布尔条件2){     
             //代码块...        
        }      
 } else{           
       if (布尔条件2){     
              //代码块...          
       }     
 }  


复制代码

学习笔记—switch...case

基本使用

  • switch()中的表达式结果类型必须是byte、short、int、char 类型,jdk7.0 支持String类型
  • 当表达式的结果匹配上case后面的值时,对应的代码块就会被执行。

case后面的值,不允许重复,并且一个case后面只能跟一个数据。 当位置连续的两个case后面的代码语句完全一致时,可以将位置在前的case后面的语句省略。

     switch(表达式){           
               case 值1: 代码块1;                
               case 值2: 代码块2;              
               case 值3: 代码块2;        
     }

switch()中的表达式结果类型必须是byteshortintchar 类型,jdk7.0 支持String类型

当表达式的结果匹配上case后面的值时,对应的代码块就会被执行。


import java.util.Scanner;
public class Test{
   public static void main(String[] args){
      Scanner sc=new Scanner(System.in);
      System.out.println("请输入一个整数:");
      int n=sc.nextInt();
      switch(n){ 
         case 1:System.out.println("好好学习");
         case 2:System.out.println("天天向上");
         case 3:System.out.println("坚持就是胜利");  
      }
      System.out.println("ending...");
   }
}

第一次输入和最后一个case匹配的值,运行结果OK

第二次输入和其它case匹配成功的值,运行多个case的结果
复制代码

break

当表达式的结果匹配上case后面的某个值时,其后的代码块会被执行, 但并不会退出整个switch语句,需要使用break;语句终止switch...case结构

import java.util.Scanner;
public class Test{
   public static void main(String[] args){
      Scanner sc=new Scanner(System.in);
      System.out.println("请输入一个整数:");
      int n=sc.nextInt();
      switch(n){ 
         case 1:System.out.println("好好学习");break;
         case 2:System.out.println("天天向上");break;
         case 3:System.out.println("坚持就是胜利");break
      }
      System.out.println("ending...");
   }
}
复制代码

default

当表达式的结果和所有case后面的值都没有匹配成功时,则默认执行default后面的语句。
default语句没有先后顺序,通常写在后面。当default定义在后面时,break可以省略,但是定义在其它位置时,break不可以省略

    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入一个整数:");
        int n=sc.nextInt();
        switch(n){
            case 1:System.out.println("好好学习");break;
            case 2:System.out.println("天天向上");break;
            case 3:System.out.println("坚持就是胜利");break;
            default:
                System.out.println("哈哈哈哈");
        }
        System.out.println("ending...");
    }
复制代码

学完做做题

1.学生成绩划分等级:  90~100  输出 "优秀 "  80~90   输出 "良好 "  60~80   输出"及格"  60分以下,输出 "不及格 "
import java.util.Scanner;
public class Test{
   public static void main(String[] args){
      Scanner sc=new Scanner(System.in);
      System.out.println("请输入一个成绩:");
      double score=sc.nextDouble();
      if(score>=90 && score<=100){
         System.out.println("优秀");
      }else if(score>=80 && score<90){
         System.out.println("良好");
      }else if(score>=60 && score<80){
         System.out.println("及格");
      }else{
         System.out.println("不及格");
      }
   }
}


import java.util.Scanner;
public class Test{
   public static void main(String[] args){
      Scanner sc=new Scanner(System.in);
      System.out.println("请输入一个成绩:");
      double score=sc.nextDouble();
      if(score>=0 && score<=100){
         if(score>=90 && score<=100){
           System.out.println("优秀");
         }else if(score>=80 && score<90){
           System.out.println("良好");
         }else if(score>=60 && score<80){
           System.out.println("及格");
         }else{
           System.out.println("不及格");
         }
      }else{
         System.out.println("请输入有效成绩...");
      }
   }
}
复制代码

今日学习名词

名词 含义
Scanner 扫描器
switch 开关 转换器 转变
case 具体情况; 事例

今日学习总结

劝退日记


杭州的设计师转行送外卖了,找到了人生的意义,每天都很快乐。送外卖貌似也不错,毕竟公司送制服,送帽子,帽子上还可以加一个竹蜻蜓......

image.png