JavaSE基础语法(2)

1.位运算

<< :空位补零,被移除的高位丢弃,空位补0.

>> :  被移的二进制最高位是0,被移后,空缺位补0.

最高位是1,被移后,空缺位补1.

>>> : 被以后最高位(0|1),空缺位都补0.

& :1&1为1,其余都为0.

|  : 0|0为0,其余都为1.

^ :  1^1=0, 0^0=0,1^0=1,0^1=1.

~ : 正数取反,负数取反,各二进制码。按补码各位取反

public class demo01 {
    public static void main(String[] args) {
        int a = 4;
        int b = 3;
        a=a>>1;
        b=b<<2;
        System.out.println(a);
        System.out.println(b);
        int x=10;
        x=x>>>1;
        System.out.println("x="+x);
        int y = 5;
        int z = 3;
        /*
        0000 0101  5
        0000 0101  5
        0000 0011  3
        0000 0111  7
        */
        System.out.println(x&y);
        System.out.println(x|y);
        System.out.println(x|z);
        System.out.println(x^y);
        System.out.println(~x);
        System.out.println(~z);

    }
}

2.控制台输入

实现控制台输入信息功能(Java为我们提供了Scanner)。

import java.util.Scanner;

public class demo7 {
    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("姓名:"+name+"\t年龄:"+age);
    }
}

(1).next()方法用以 取得用户输入的字符串;
(2).nextInt()将取得的输入字符串转换为整数类型;
(3).nextFloat()转换成浮点型;
(4).nextBoolean()转 换成布尔型.

3.控制语句

(1).if语句

if(条件【条件为真向下执行,反之跳过if语句】){

//语句

}

  System.out.println("请输入年龄:");
        int age =scanner.nextInt();
        if(age>=0&&age<=9){
            System.out.println("儿童");
        }
        else if(age>=10&&age<=19){
            System.out.println("少年");
        }
        else if(age>=20&&age<=29){
            System.out.println("青少年");
        }
 else{
            System.out.println("长命百岁");
        }
(2).switch语句
​
import java.util.Scanner;

public class hw_02 {
    public static void main(String[] args) {
       /* 2.编程一个程序,计算今天是今年的第几天.
                例如: 控制台分别输入年月日
        2023
        10
        30*/
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入年份:");
        int year=scanner.nextInt();
        System.out.println("请输入月份:");
        int month =scanner.nextInt();
        System.out.println("请输入日期:");
        int day =scanner.nextInt();
        int flag=0;
        if((year%4==0&&year%100!=0)||(year%400==0)){
            switch (month){
                case 1:
                    flag=day;
                    break;
                case 2:
                    if(day<29)
                    flag=31+day;
                    else
                        System.out.println("输入错误,超出天数");
                    break;
                case 3:
                    flag=31+29+day;
                    break;
                case 4:
                    flag=31*2+29+day;
                    break;
                case 5:
                    flag=31*2+30+29+day;
                    break;
                case 6:
                    flag=31*3+30+29+day;
                    break;
                case 7:
                    flag=31*3+30*2+29+day;
                    break;
                case 8:
                    flag=31*4+30*2+29+day;
                    break;
                case 9:
                    flag=31*5+30*2+29+day;
                    break;
                case 10:
                    flag=31*5+30*3+29+day;
                    break;
                case 11:
                    flag=31*6+30*3+29+day;
                    break;
                case 12:
                    flag=31*6+30*4+29+day;
                    break;
            }
            }
      
               
        System.out.println("今天是今年的第"+flag+"天");

    }
}

​

表达式可以是byte、short、int、char、枚举类型、String类型;

case语句后面只能使用常量表达式;

case后的值不能重复;

某个case分支如果没有提供break语句,则继续执行下一个case后的语句;

当表达式的值与任一case子句中的值都不匹配时,将执行default后面的语句;

如果没有default子句,则程序直接跳出switch语句。

4.循环

(1).while循环

while(逻辑表达式【为ture执行后面语句】){

循环体

}

 while(flag<deep){
            //白天
            flag+=3;
            if(flag>=deep){
                day++;
                break out;
            }
            //晚上
         flag-=2;
            day++;
        }
(2).do-while循环

do{

循环语句

}while(逻辑表达式);【先执行一次语句,再判断是否为真,所以至少会执行一次语句。

 int connt;
        Scanner scanner  = new Scanner(System.in);
        do{
            System.out.println("请输入年份");
            int year=scanner.nextInt();
            if((year%4==0&&year%100!=0)||(year%400==0)){
                System.out.println(year+"年是闰年");
            }
            else{
                System.out.println(year+"年不是闰年");
            }
            System.out.println("是否继续?1.继续,0.退出");
         connt= scanner.nextInt();

        }while(connt==1);
(3).for循环

for(表达式1;表达式2;表达式3){语句}

【首先计算表达式1,接着执行表达式2,若表达式2的值 = true,则执行循环语句, 接着计算表达式3,再判断表达式2的值;依此重复下去,直到表达式2的值=false.】

for(int i=0;i<num;i++){
            for(int j=0;j<num;j++){
                System.out.print("*");
                if(i==3){
                    break out;
                }
            }
(4).break&continue

break:

可以强行退出循环

continue:

用于终止某次循环过程,跳过循环体中 continue 语句下面未执行的循环,开始下一次循环过程;

 public static void print(int num){
        out:for(int i=0;i<num;i++){
            for(int j=0;j<num;j++){
                System.out.print("*");
                if(i%2==0){
                    continue ;
                }
                if(i==3){
                    break out;
                }
            }
            System.out.println();
        }

想要结束外部循环在外部循环加(标签),break  (标签);即可。

5.Java中方法的引用

方法声明格式: [访问权限修饰符 修饰符...] [返回值类型] 方法名(形式参数类型 参数名){

Java语句;... ... ...

[return 返回值;]

}

修饰符:这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。

形式参数: 在方法被调用时用于接收外界输入的数据。

返回值类型:事先约定的返回值的数据类型,如无返回值,必须给出返回值类型void。

方法体:方法体必须有{}括起来,在{}中编写完成方法功能的代码

返回值:方法在执行完毕后返还给调用它的环境的数据。

实参:调用方法时实际传给方法的数据

public class demo02 {
    public static void main(String[] args) {
        demo02.menu();
        int max = demo02.max(10,5);
        System.out.println("最大值:"+max);
        demo02.print(10);
    }
    public static  void menu(){
        System.out.println("-----------------");
        System.out.println("0.退出");
        System.out.println("1.收支明细");
        System.out.println("2.登记收入");
        System.out.println("3.登记支出");
        System.out.println("请选择:");

    }
    public  static int max(int a ,int b){
        return a>b?a:b;
    }
    public static void print(int num){
        out:for(int i=0;i<num;i++){
            for(int j=0;j<num;j++){
                System.out.print("*");
                if(i%2==0){
                    continue ;
                }
                if(i==3){
                    break out;
                }
            }
            System.out.println();
        }


    }
}

  • 20
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值