Java流程控制

Java流程控制

用户交互Scanner

Scanner

public static void main(String[] args) {
    //创建一个扫描器对象,用于接收键盘数据
    Scanner scanner = new Scanner(System.in);

    System.out.println("使用next方式接收:");

    //判断用户有没有输入字符串
    if (scanner.hasNext()){
        //使用next方式接收
        String str = scanner.next();
        System.out.println("输出内容为:"+str);
    }
    //凡是属于IO流的类如果不关闭会一直占用资源
    scanner.close();
public static void main(String[] args) {

    Scanner scanner = new Scanner(System.in);

    System.out.println("使用nextLine方式接收:");

    String str = scanner.nextLine();

    System.out.println("输出内容为:" + str);

    scanner.close();

If选择结构

  1. 单重判断:if
public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    System.out.println("请输入内容:");
    String s = scanner.nextLine();

    //equals:判断字符串是否相等
    if(s.equals("Hello")){
        System.out.println(s);
    }

    System.out.println("End");

    scanner.close();
}
  1. 双重判断(包含否定):if—else
public static void main(String[] args) {

    //考试分数大于60就是及格,小于60就不及格
    Scanner scanner = new Scanner(System.in);
    System.out.println("请输入成绩:");
    int score = scanner.nextInt();

    if(score>60){
        System.out.println("及格");
    }else {
        System.out.println("不及格");
    }
    scanner.close();
}
  1. 多重判断(包含否定):if—else if—else if-------else
public static void main(String[] args) {
    //考试分数大于60就是及格,小于60就不及格
    Scanner scanner = new Scanner(System.in);
    System.out.println("请输入成绩:");
    int score = scanner.nextInt();

    if (score == 100) {
        System.out.println("恭喜满分");
    }else if(score<100 && score>=90){
        System.out.println("A级");
    }else if(score<90 && score>=80){
        System.out.println("B级");
    }else if(score<80 && score>=70){
        System.out.println("C级");
    }else if(score<70 && score>=60){
        System.out.println("D级");
    }else if(score<60&& score>=0){
        System.out.println("不及格");
    }else {
        System.out.println("成绩不合法");
    }
    scanner.close();
}

Switch 选择结构

switch—case结构:case有穿透现象,无break时,将不退出选择,继续往下执行直至结束

public static void main(String[] args) {
    //case:穿透现象    switch:匹配一个具体的值
    char grade = 'E' ;
    switch (grade){
        case 'A':
            System.out.println("优秀");
            break;//可选
        case 'B':
            System.out.println("良好");
            break;//可选
        case 'C':
            System.out.println("及格");
        case 'D':
            System.out.println("不及格");
            break;//可选
        default:
            System.out.println("不合法");
    }

}

反编译

  1. 先找到class文件

class文件1
class文件2
2. 复制相应class文件
3. 找到相应包含Java的包

包

  1. 进入相应的包后,将复制的class文件粘贴进去,即可打开class,看到源码

编码
编码2

public static void main(String[] args) {
    String name = "呜呜";

    //JDK7的新特性,表达式结果可以是字符串!!!
    //字符的本质还是数字

    //反编译   java---class(字节码文件)---反编译(IDEA)

    switch (name){
        case "哈哈" :
            System.out.println("666");
            break;
        case "呵呵" :
            System.out.println("000");
            break;
        case "呜呜" :
            System.out.println("555");
            break;
        default:
            System.out.println("???");

    }
public SwichDemo02() {
}

public static void main(String[] args) {
    String name = "呜呜";
    byte var3 = -1;
    switch(name.hashCode()) {
    case 691072:
        if (name.equals("呜呜")) {
            var3 = 2;
        }
        break;
    case 691872:
        if (name.equals("呵呵")) {
            var3 = 1;
        }
        break;
    case 694528:
        if (name.equals("哈哈")) {
            var3 = 0;
        }
    }

    switch(var3) {
    case 0:
        System.out.println("666");
        break;
    case 1:
        System.out.println("000");
        break;
    case 2:
        System.out.println("555");
        break;
    default:
        System.out.println("???");
    }

}

循环结构

While循环结构

public static void main(String[] args) {

    //计算1+2+3+...+100=?

    int i = 0 ;
    int sum = 0 ;
    while (i<100){
        i++;
        sum+=i;
    }
    System.out.println(sum);

}

死循环:

public static void main(String[] args) {
    //死循环
    while (true){
        //等待客户端连接
        //定时检查
    }
}

DoWhile循环结构

public static void main(String[] args) {

    //计算1+2+3+...+100 = ?

    int i = 0 ;
    int sum = 0 ;
    System.out.println(sum);
    do{
        sum = sum + i;
        i++;
    }while(i<=100);
    System.out.println(sum);
}

For循环结构

while 循环 与 for 循环 比较

public static void main(String[] args) {

    int a = 1;                  //初始化条件

    while (a<=100) {            //条件判断
        System.out.println(a);
        a+=20;                  //迭代
    }
    System.out.println("while循环结束");

    // 初始化--条件判断--迭代
    //快捷键  比如:  100.for--回车
    for (int i=1;i<=100;i+=20){
        System.out.println(i);
    }
    System.out.println("for循环结束");
    /*
    死循环:for(;;){}
     */
}

参考练习:

  1. public static void main(String[] args) {
    
    
        //练习1:计算0到100之间的奇数和偶数的和
    
        int oddsum  = 0;         //奇数
        int evensum = 0;         //偶数
    
        for (int i = 0; i <= 100; i++) {
            if (i%2!=0){
                oddsum+=i;
            }else {
                evensum+=i;
            }
        }
        System.out.println("奇数之和:"+oddsum);
        System.out.println("偶数之和:"+evensum);
    }
    
  2. public static void main(String[] args) {
        //练习2:for循环输出1~1000之间能被5整除的数,并且每行输出3个
        for (int i = 0; i < 1000; i++) {
            if(i%5 == 0){
                System.out.print(i+"\t");
            }
            if( i%(5*3) == 0){
                System.out.println();
                //System.out.print("\n");
            }
        }
        //println  输出会完全换行
        //print    输出不会完全换行
    }
    
  3. 打印九九乘法表

public static void main(String[] args) {

    for (int j = 1; j <= 9; j++) {

        for (int i = 1; i <= j; i++) {
            System.out.print(i+"*"+j+"="+(j*i)+"\t");
        }
        System.out.println();
    }
}
  1. 打印三角形

             *
            ***
           *****
          *******
         *********
    
    public static void main(String[] args) {
        //打印三角形  5行
        for (int i = 0; i <= 5; i++) {
            for (int j = 5; j >= i; j--) {
                System.out.print(" ");
            }
            for (int j = 1; j <= i; j++){
                System.out.print("*");
            }
            for (int j = 1; j < i; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
    

调试debug的使用

  1. 生成断点

生成断点

  1. 打开debug
    打开debug

  2. 观察变化

观察变化

增强For循环
public static void main(String[] args) {
    int[] number = {10,20,30,40,50};

    for (int i = 0; i < 5; i++) {
        System.out.println(number[i]);

    }
    System.out.println("===========================");

    //遍历数组的元素
    //增强 for 循环
    for(int x : number){
        System.out.println(x);
    }
}

break、continue、goto

break 与 continue 比较:

public static void main(String[] args) {
    int i = 0;
    while (i<100){
        i++;
        System.out.println(i);
        if (i==30){
            break;  //强制退出循环   不跳出程序
        }
    }
}
public static void main(String[] args) {
    int i = 0;
    while (i<100){
        i++;
        if (i%10==0){
            System.out.println();
            continue;         //终止某次循环   重新跳到循环开始的地方
        }
        System.out.print(i);
    }

}

goto运用:

public static void main(String[] args) {
    //打印101~150之间所有质数

    int count = 0;

    outer:for (int i = 101; i < 150; i++) {
        for (int j = 2; j < i/2; j++) {
            if(i % j == 0){
                continue outer;   //返回标签
            }
        }
        System.out.print(i+" ");
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奇҈迹҈、҈出҈没҈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值