第二章、Java基础(续)

目录

1、 运算符

1.1 算术运算符

1.2 比较运算符

1.3 逻辑运算符

1.4 赋值运算符

1.5 条件运算符

1.6 位运算符(bit位)

1.7 表达式的运算顺序

2、控制语句

2.1  控制台输入

2.2  if 语句  和 switch 语句

2.3  循环语句

2.4  break 和 continue

3、 方法


1、 运算符

1.1 算术运算符

符号:+,-,*,/,%,++,--;

注:加法运算有加法和连接两个作用。

单独的x++,x--,--x,x++是没有任何区别的。

在混合运算中++在前先自增,++在后后自增。

public class Main(){
   public static void main(String[] args){
       int x = 3,y;
        x++;  //x = x+1;
        ++x;  //x = x+1;
        y = x++ + 1;    //x = 6,y = 6;先进行运算,在进行自增。
        x = 5;
        y = ++x + 1;    //x = 6,y = 7;先进行自增,后运算。
   }
}

1.2 比较运算符

符号:>,<,==,>=,<=,!=;

1. >,<,>=,<=,只能进行数值之间的比较。

2. ==,!=,也能进行数值之间的比较,还可以进行逻辑值之间的比较,引用类型之间的比较。

1.3 逻辑运算符

符号:!,&,|,&&,||,^;

&,&&  表达式中有一个false,结果为false。只要出现第一个false时,整个表达式就会出现短路。(即前面如果出现false,后面的都不进行执行)。

逻辑或  表达式出现一个true,结果为true;

||   短路或  表达式中有一个true,结果为true。当出现第一个true、发生短路,结果为true。(可以执行后面的表达式)

 逻辑非  取反

^ 异或   相同为false,不同为true;

注:^,|,&,都可以进行位运算

1.4 赋值运算符

符号:=,+=,-=,*=,/=,%=;

将右边的值赋给左边。

+=,-=,*=,/=,%=  (赋值运算(隐式的类型转换))

public class Main {
    public static void main(String[] args) {
        short s = 3;
        s = (short)(s+2);   //s+2 上升为int类型
        s += 3;
    }
}

1.5 条件运算符

符号:(条件表达式)?表达式1:表达式2

    当结果为true,执行表达式1;

    结果为false,执行表达式2。

public class Main{
   public static void main(String[] args)  {
         int x = 4;
         System.out.println("value is " + ((x>4) ? 99:9));
	}
}	
//value is 9.0  默认类型转换(double型)
//

1.6 位运算符(bit位)

符号:<<,>>,>>>,&,|,~,^;

  1. << 左移一位 (* 2)  a<<1   二进制比特位向左移一位

  2. >> 右移一位  (/2)   a>>1   二进制比特位向右移一位

  3. >>>右移一位  (/2)     a>>>1    二进制比特位向右移一位,无符号右移,负数时,移位后补0;

  4. &      例:0100&0011     result:0000        0                         

  5.  |       例:0100|0011     result:0111        7

  6. ~       例: ~0100       result:    1011         -5

  7. ^       例:0100^0011   result:  0111         7        

1.7 表达式的运算顺序

  1. 优先级与求值顺序无关。如a+b && b*c,虽然*优先级最高,但这个表达式求值顺序是从左到右。
  2. 优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。
  3. 相同优先级中,按结合性进行结合。大多数运算符结合性是从左到右,只有三个优先级是从右至左结合的,它们是单目运算符(++,--等)、条件运算符、赋值运算符。 
  4. 基本的优先级需要记住:先算术运算,后移位运算,最后位运算。请特别注意:1,逻辑运算最后结合。

2、控制语句

2.1  控制台输入

用户与程序进行交互,使用Scanner类。

作用:向程序中实现输入程序。   

注:仅在java SE测试程序时使用。

通过类去创建一个对象(具体的可以使用的对象在内存中存储)

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入姓名:");//读入为字符串类型
        String name = scanner.next();
        System.out.println("请输入年龄:");  //读入为一个整数
        int age = scanner.nextInt();
        System.out.println("请输入性别:");  //读入为字符串
        String sex = scanner.next();
        System.out.println("姓名:" + name);
        System.out.println("年龄:" + age);
        System.out.println("性别:" + sex);
    }
}

2.2  if 语句  和 switch 语句

  •    if (条件) {执行语句}
  • if(条件){ 真,执行语句1 }  else  {  假,执行语句2  }   ,满足一个条件,流程自动停止。
  • if(条件){} else if{} else{};
  • 多路选择:switch语句(break可不加)

   switch(表达式){

        case value1:  语句1;break;

        case value2:  语句2';break;

        case value3:  语句3;break; 

                default:默认代码块;

}

表达式:byte,short,int,char,枚举类型(enum),string

注:表达式和value值类型相同,只能用常量表示,不能重复。

  • case后面的语句块执行完成后,如果没有break结束,则继续向下进行执行下一个case语句,直到执行到default语句。
  • 如果没有与表达式匹配的选项,则执行default语句,没有default语句,则直接结束。

相同:多路分支选择,switch可以实现,if也可以实现。

不同:if 的条件更加灵活,而switch语句适用于一些固定的选项,如星期,月份等,在固定的选项中效率高。

2.3  循环语句

满足某种条件,一致重复执行某种事件。

循环语法格式:

循环变量初始化;进入循环的条件;循环体(循环中要执行的代码);循环变量的更新。

  • while(循环条件){  循环体}       先条件判断,不成立不能进入循环体中。
  • do{  循环体  }while(循环条件)   至少执行一次。先执行,后判断。
  • for(变量初始化;条件;更新变量){  循环体 }   变量初始化执行一次。

2.4  break 和 continue

1. 死循环

  • while(true){

       }

  • for(; ;){   }

2. break: 终止循环(只能终止当前所在层循环)

3. continue:跳过某一次循环

4.循环嵌套; 

public class Main {
    public static void main(String[] args) {
        for (int i = 0; i < 4; i++) {
            for (int j = 0; j < 4; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
//在内层循环中,终止外层循环。为循环定义一个标记(outer,label等自定义标签),在命名规则下命名。
 outer: for (int i = 0; i < 4; i++) {
            for (int j = 0; j < 4; j++) {
                if(j == 3){
                   break outer;
            } 
        }
    }
}
    

3、 方法

定义:类似于其他语言的函数(如:C语言),来解决某一问题,而编写的代码集合。

目的:在程序中多次的调用或使用

注:属于类或对象

语法格式:[访问权限修饰符      修饰符   返回值类型]  方法名[数据类型   参数名]){

      //语句

     [ return   返回值; ] 

}

访问权限修饰符:public(公共的),private(私有的),protected 和 default;

形参:数据类型  参数名(可以自己进行定义)

方法名:可以自定义;(最好见文知义)

static:  使用 static 修饰方法属于类,可以直接通过类名调用。

public static void pea(){
      int i = 5,
      System.out.print(i);
}
//调用方式:类名 方法名();         
//类名:Demo;        Demo.pea();

        不使用static 修饰,方法属于对象,需要通过对象来进行调用

public void display(){
       int b = 10;
      System.out.print(b);
}
//调用方式:类名  name = new 类名();
//   name.方法名();
//  类名为Demo    Demo demo = new Demo();
//    demo.display();

void:   表示方法无返回值。

注:如果方法有返回值,必须声明返回值的类型。

return 值,是否有值:

注:有值的时候,从方法中向调用处返回一个结果;后面没有值的时候,只表明方法终止,不表示方法有返回值。

 //有void
public void display(int sum){
        int i = 1,j = 6;
        sum = i+j;
         System.out.print(i);
    }
//无void
public int test(int a,int b){
        int c = a+b;
        return c;
}
//return没有值
public void test(int i){
        int sum = 0;
        for (int j = i; j < 10; j++) {
            sum += j;
            System.out.print(sum);
            if(j == 8){
                return;
            }
        }
}
//此处return表示在此处终止(后面没有值的时候,只表明方法终止,不表示方法有返回值)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值