Java学习笔记(二)

14.5 逻辑运算符

逻辑与&    逻辑或|   逻辑非!  逻辑异或^

短路与&&   短路或||

14.5.1

逻辑与&,也就是并且

总结:当两个条件都为true时,则结果为true,否则为false

14.5.2

逻辑或,也就是或者

总结:当两个条件中有一个为true时,则结果为true,否则为false

14.5.3

逻辑非!,也就是取反

注意:只对boolean类型的值取反

14.5.4

逻辑异或

                     true ^ true ---->false

                     true ^ false---->true

                     false ^ true --->true

                     false ^ false --->false

14.5.5

短路与,类似于逻辑与,都表示并且

                     注意:1.逻辑与、短路与的执行结果一样,但是执行过程可能不同,当使用短路与时,第一个条件为false则结果为false

                     当有逻辑与、短路与时,建议使用短路与

14.5.6

 短路或,类似于逻辑或,都表示或者

注意:1.逻辑或、短路或时执行结果一样,但是执行过程不同,当使用短路或时,第一个条件为true时,则结果为true

总结:1.逻辑运算符最终结果为boolean类型的值

              2.除了逻辑非以外,剩余的逻辑运算符都是两个条件,并且两个条件都是boolean类

14.6 三目运算符

三目运算符也叫做条件运算符

              语法格式:

                     条件 ? 代码1 : 代码2

class MyClass{
    public static void main(String[] args){
    String s = 10 > 100 ? "大于" : "小于等于";//三目运算符
    System.out.println(s);
    }
}

=与==、&与&&、|与||区别

       4.1 =与==区别

              =是赋值运算符,将右侧的值赋给左侧的变量名称

              ==是关系运算符,判断左边的值是否与右边的值相等,结果为boolean类型

       4.2 &与&&区别

              &、&&都属于逻辑运算符,都表示并且,两个执行结果相同,执行过程不同

              &是逻辑与

              &&是短路与

       4.3 |与||区别

              |、||都属于逻辑运算符,都表示或者,两个执行结果相同,但是执行过程不同

              |是逻辑或

              ||是短路或

15.键盘接收用户输入

键盘接收用户输入

    15.1操作步骤:

              第一步:导入包,必须Java源文件中的第一行

                     import java.util.Scanner;

              第二步:创建Scanner对象

                     Scanner input = new Scanner(System.in);

              第三步:友好提示

                     System.out.print("请输入:");

              第四步:键盘接收用户输入

                     int a = input.nextInt();  //注意:当运行到该条语句时,程序等待用户接收键盘输入,当输入完毕必须按回车键,并将回车之前的所有内容赋给a

                     double x = input.nextDouble();

                     String name = input.next();    //注意:在Java中,键盘接收字符串类型没有nextString(),而是使用next()

                     String s = input.next();  //注意:在java中,键盘不能直接接收字符类型,而是先接收字符串类型,然后在字符串中获取第0个位置中的值,使用charAt(0)

                     char sex = s.charAt(0);

                     boolean b = input.nextBoolean();

import java.util.Scanner; //导包 

class Input1{
    public static void main(String[] args){
        //键盘输入某个人的信息(名字、性别、年龄、婚否)
        Scanner input = new Scanner(System.in); //创建Scanner对象
        System.out.print("请输入姓名:");    //友好提示
        String name = input.next();    //注意:在Java中,键盘接收字符串类型没有nextString(),而是使用next() 
        System.out.print("请输入性别:");
        String s = input.next();            //注意:在java中,键盘不能直接接收字符类型,而是先接收字符串类型,然后在字符串中获取第0个位置中的值,使用charAt(0)
        char sex = s.charAt(0);
        System.out.print("请输入年龄:");
        int age = input.nextInt();
        System.out.print("请输入婚否(已婚为true,未婚为false):");
        boolean b = input.nextBoolean();

    }
}
 

  

16.选择结构

程序流程控制有三大结构:

       顺序结构:从上至下按顺序依次执行

       选择结构

       循环结构

16.1选择结构

     16.1.1 if选择结构

              语法格式:

                     if(条件){

                            代码块

                     }

      

import java.util.*;
class If01{
    public static void main(String[] args){
        //练习1:假如考试成绩在95分以上则有奖励
        Scanner input = new Scanner(System.in);
        System.out.print("请输入考试成绩:");
        double a = input.nextDouble();
                if(a > 95)
      System.out.println(
"有奖励");
      } System.out.println(
"OK"); }

     16.1.2 if else选择结构

              语法格式:

                     if(条件){

                            代码块1

                     }else{

                            代码块2

                     }

      

class If02{
      public static void main(){
               Scanner input = new Scanner(System.in);
		System.out.print("请输入一个成绩:");
		double a = input.nextDouble();
    
             if(a > 95){
			System.out.println("有奖励");
		}else if(a <= 95){
			System.out.println("发红包");
		}  
     }          
}

  

     16.1.3多重if选择结构

              当有两种或两种以上情况时,则可以使用多重if选择结构

              语法格式:

                     if(条件1){

                            代码块1

                     }else if(条件2){

                            代码块2

                     }

注意:1.多重if选择结构中的else if(){}可以有任意多个

2.多重if选择结构中的else是可有可无的,如果编写,最多编写1个,并且只能编写在最后

16.1.4.if嵌套

import java.util.*;
class If01{
	public static void main(String[] args){
		/*
			练习1:假如成绩为100分则评为优秀,
								  成绩在90分以上则评为良好,
								  成绩在60分以上则评为及格,
								  否则评为不及格
		*/
		Scanner input = new Scanner(System.in);
		System.out.print("请输入一个成绩:");
		double a = input.nextDouble();
                    if(a == 100){
			System.out.println("优秀");
		}else if(a >= 60 && a < 90){
			System.out.println("及格");
		}else if(a >= 90){
			System.out.println("良好");
		}else{ //也就是60分以下的
			System.out.println("不及格");
		}

            }
    }            

  

16.2.switch case

语法格式

              switch('1'){

              case '1':

                     System.out.println("奖励一台电脑");

                     break;

              case '2':

              case '3':

              default:

              }

      

注意:

1.表达式可以是byte short int String char 枚举

2.可以编写任意多个case

3.表达式的类型必须与常量值的类型一致

4.break表示中断switch case

5.default是可有可无的,如果有default,当所有case都不满足时则执行default

6.switch case中的break是可有可无的,当遇到break则中断switch case,当没有break则从当前匹配的case后进行穿透

7.case的顺序是可以颠倒的,不影响程序的运行结果,一般是按照顺序进行编写

8.default的顺序是可以编写在任意位置,当所有case都不满足时则执行default,建议default编写在所有case的后面

9. case是可以合并的

==与equals()区别

       == 当在基本数据类型中使用比较的是真正的值

          当在引用数据类型中使用比较的是地址

       equals() 只对引用数据类型进行使用,并且比较的是内容

.switch case与多重if区别

       相同点:

              都是选择结构程序

       不同点:

              switch case只能做等值操作

              多重if可以做等值也可以做区间

17.循环结构

    17.1循环:

定义:

当做重复事情时,则可以使用循环

    17.2循环特点:

循环条件、循环操作(循环体)

    17.3常用的循环:

for循环、while循环、do while循环

    17.3.1  for循环

         17.3.1.1语法格式:

                     for(表达式1;表达式2;表达式3){

                            循环体

                     }

                     注意:1.表达式1完成变量的初始值,如:int i = 1;

2.表达式2完成循环条件的判断,当条件为true则执行循环体,否则循环结束,如:i <= 5;

                            3.循环体完成重复的事情

                            4.表达式3完成变量值的更改,如:i++

17.3.1.2  for循环注意事项

注意:1.for循环中三个表达式都可以省略,但是分号必须不能省略,则出现死循环也叫做无限循环,如果强行终止按ctrl + c

                     for(;;){

                            System.out.println("HelloWorld");

                     }

注意:2.当省略表达式1,则出现编译错误,解决办法:将表达式1编写在for循环上面

                     int i = 1;

                     for(;i <= 5;i++){

                            System.out.println(i);

                     }

注意:3.当省略表达式2,则出现死循环也叫做无限循环,也就是说当省略表达式2则条件默认为true

                     for(int i = 1;;i++){

                            System.out.println(i);

                     }

注意:4.当省略表达式3,则出现死循环,解决办法:将表达式3编写在循环体中的最后一条语句

                     for(int i = 1;i <= 5;){

                            System.out.println(i);

                            i++;

                     }

注意:5.如果在循环外输出表达式1中的值,则出现编译错误,解决办法:将表达式编写在for循环上面进行声明并赋值

                     int i = 1;

                     for(;i <= 5;i++){

                            System.out.println(i);

                     }

                     System.out.println(i);  //6

17.3.1.3双重循环

也叫做二重循环

       1.1定义:在java中,在一个循环中又包含另一个循环

              for(;;){  //外层循环

                     for(;;){  //内层循环

                     }

              }

       结论:当外层循环执行1次,则内层循环执行1遍

选择结构、循环结构统称为控制结构

if(){

       if(){

       }else{

       }

}

for(;;){

       if(){

       }

}

       注意:控制语句中可以包含控制语句

17.3.2.while循环

     17.3.2.1语法格式:

              while(循环条件){

                     循环体

              }

     17.3.2.2执行流程:

              首先判断条件,当条件为true时,则执行循环体,然后再判断条件......一直到循环条件为false时循环结束

17.3.3.do while循环

       17.3.3.1特点:

先执行循环体,然后再判断条件

     17.3.3.2语法格式:

              do{

                     循环体

              }while(循环条件);

       3.3执行流程:

              先执行循环体,然后再判断条件,但条件为true时,则继续执行循环体,再判断条件........一直到循环条件为false时循环结束

总结:三种循环异同点

1.语法格式不同

              for(;;){

              }

              while(){

              }

              do{

              }while();

       2.执行顺序不同

              for循环和while循环:先判断条件,当条件为true时,则执行循环体

              do while循环:先执行循环体,然后再判断条件

       3.使用情况不同

              当循环次数固定时,建议使用for循环

              当循环次数不固定时,建议使用while循环、do while循环

                     ---先判断再执行循环体,则使用while循环

                     ---先执行循环体,然后再进行判断,则使用do while循环

       4.当循环条件第一次就为false时,则

              for循环和while循环执行0次循环体,0次----N次

              do while循环,执行1次循环体,1次---N次

补充:循环中break和continue的使用

在循环中遇到break则结束当前整个循环,执行循环外面的语句。

在循环中遇到continue语句,则结束当次循环,则继续执行下一次循环。

他们的异同点:

1.使用场合不同

              break可以在switch case中或循环中使用

              continue只能在循环中使用

2.作用不同

              break:结束当前整个循环,执行循环外面的语句

              continue:结束当次循环,则继续执行下一次循环

18.方法

    18.1定义:

实现具体的一个功能

       18.2方法的分类:

1.系统提供的方法:nextInt() 、nextDouble()、print()

                                     ......

  1. 用户自定义的方法:

(1)定义方法的语法格式:

修饰符 返回值类型 方法名称([参数列表]){}

注意:1. 在java中[]中的内容是可选择的

2.暂时将方法的修饰符编写为public static

3.返回值类型有两种:

第一种:无返回值类型,编写为void

第二种:有返回值类型

4.方法名称也就是名字,标识符

建议方法名称见名知意,最好编写为动词,如:print     add

建议采用驼峰命名法,如:getName show      setAge

5.方法体就是该方法实现的 具体功能

    

*****注意:1.用户自定义的方法,编写在类中

         2.程序运行必须先执行main方法

         3.方法定义好以后并不会自动执行,则必须进行方法的调用

         4.一个方法可以多次进行调用

         3.调用方法的语法格式:

                类名.方法名称([参数列表]);

         4.方法的好处:

                减少代码的冗余性(重复)

5.

                              方法内存分析图

原文地址:https://www.cnblogs.com/kosinggit/p/8619770.html