Java基础流程的控制


加一些之前学过的东西:JDK7的特性是可以在数字之间可以用下划线分割;

int u=10_0000_0000;//不会报错的

java.util.Scanner是JDK5的特性,可以通过Scanner来获取用户的需求,从JDK7开始swtich语句中就可以支持字符串的使用了;

JAVA流程控制

1.用户交互Scanner

package com.yy.www;
import java.util.Scanner;
public class JAVA05 {
    public static void main(String[] args) {
        //创建一个扫描键盘输入东西的机器人
        Scanner scanner=new Scanner(System.in);
        //对象.方法=scanner.hasNext();
        System.out.println("请输入你想输入的字符:");//输入120  2138
        //hasNext用来判断输入的是否为字符串(当遇到空格时结束程序)
        if (scanner.hasNext()){
            String a= scanner.next();
            System.out.println("结果为:"+a);
    }
        //hasNextLine用来判断输入的是否为字符串(以回车作为结束符,遇到回车时结束程序)
        if(scanner.hasNextLine()){
            String b=scanner.nextLine();//输出120
            System.out.println("结果为:"+b);//输出  2138(可以输出空格)
        }
        scanner.close();//凡是属于IO流的类如果不关闭,长时间都会占用资源,自动上传,IO流就是输入输出流(in out)
    }
}

2.Scanner进阶使用

package com.yy.www;
import java.util.Scanner;
public class JAVA02 {
  public static void main(String[] args) {
 //可以输入多个数字,求得数字的总和和平均数,每输入一个数字就输出输出一个数字,用非数字流来结束此程序的运行
    Scanner scanner = new Scanner(System.in);
    double sum =0;
    int a=0;
    while (scanner.hasNextDouble()){
      double b= scanner.nextDouble();
      a=a+1;
      sum=sum+b;
      System.out.println("你输入了第"+a+"个数据是"+b);
    }
    System.out.println("你输入数字的总和为:"+sum);
    System.out.println("你输入数字的平均数为:"+(sum/a));
  }
}

3.顺序使用

  • JAVA基础的结构就是顺序结构,因为他在IDEA中是解释型语言嘛,一句一句的执行。

4.if选择结构

  • if语句无论是对还是错,都会往下进行,不会在此造成程序堵塞,运行不了等问题,就是一口气往下冲

  • package com.yy.www;
    import java.util.Scanner;
    public class JAVA06 {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            String s=scanner.nextLine();
            //equals用于判断输入的字符串是否与括号里的相等,点前面需是指定的变量名
            if (s.equals("你好")){
                System.out.println("输入正确:"+s);
            }
            System.out.println("END");//无论变量是否相等,都会输出END
            scanner.close();
            }   }
    
  • if-else双选择if结构

  • if-else if 。。。。 -else多选择结构

  • 嵌套if语句结构

  • int a =(int)(Math.random()*(15-5+1)+5)//[5,15]的随机数字
    
package com.yy.www;
import java.util.Scanner;
public class JAVA06 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int i = scanner.nextInt();
        if (i==100){
            System.out.println("满分");
        } else if (i<100&&i>=90) {
            System.out.println("优秀");
        } else if (i<90&&i>=60) {
            System.out.println("良好");
        } else if (i<60&&i>0) {
            System.out.println("不及格!");
        }else {
            System.out.println("无效数字");
        }
        scanner.close();
    }
}

5.Switch选择结构

        int score=90;
switch (score){
    case 80://字符串用双引号引起来,"小明",单个字符用单引号引起来,'A'
        break;
    case 70:
        System.out.println("可以");
        break;
    case 90:
        System.out.println("可");
        break;
    default://其他情况
        System.out.println("无");
}
  • 字符的本质还是数字!!

  • (IDEA使用可以反编译器),JAVA字节码文件—->反编译 将class文件(因为class文件是电脑机器的源码同时也是字节码,它属于中间码不能被查看)变成java文件(class文件是我们写入电脑的源码)就是反编译,反编译器分为很多种,表现的方式不同,例如JAVAP是jdk自带的一个工具,用指定命令javap -c JAVA01.class,查看java编译器生成的字节码。还有在IDEA中实现反编译,出现的和源码差不多,就是字符串的switch语句是通过equals()和hasCode()方法来实现的。

6.While循环详解

  • while(条件){
        //代码块
    } //只有条件一直正确,符合条件,那么程序就会一直运行下去,直到条件不成立的时候,结束此代码块
    

7.DoWhile循环

  • while循环语句是先判断后执行,dowhile是先执行后判断

  • DoWhile至少执行一次程序

  • do{
        //代码块
    }while(条件)
    

8.For循环详解

  • 虽然所有的循环结构都能while和do-while循环表示,但为了使Java程序更简洁,Java还提供了一种for循环

  • (以下我们会解释for循环)for循环和以上两种循环差不多,如下面的代码:

  • package com.yy.www;
    public class JAVA08 {
        public static void main(String[] args) {
            /*
            用while循环和do-while循环还有for循环输出1到100
            一般的循环都是初始化值+条件判断+迭代(迭代就是在一个变量上重复加上一样的值)
            按顺序进行中间不要加别的东西,尽量避免不必要的麻烦,例如下面的while循环中5会直接换到下一行,输出的第一行只能到4
            初始化值+条件判断+迭代语句
             */
            int i=0;//初始化值
         while (i<100){//条件判断语局
             System.out.print(i+" ");
             //System.out.print(i+"\t");
             i++;//迭代
             if (i%5==0){
                 System.out.println();
                 //上式==System.out.print("\n");
             }
         }//当前while语句每行输出5个是错误的,因为第一行到5的时候,输出的是4,而不是5,中间隔着个i++
            System.out.println("while语句结束!========");
            //初始化值+条件判断+迭代
                //101.for是 for (int i = 0; i < 101; i++)循环的快捷方式
            for (int a = 1; a< 101; a++) {
                System.out.print(a+" ");
                if (a%5==0) {
                    System.out.println();
                }
            }
            System.out.println("for循环语句结束!======");
            int b=0;
            do {
                b++;
                System.out.print(b+" ");
                if (b%5==0){
                    System.out.println();
                }
            }while (b<100);
        }
    }
    
  • package com.yy.www;
    public class JAVA08 {
        public static void main(String[] args) {
            for (; ;){ 
            }//可以输出的,但是它就是个死循环;
        }
    }
    
  • \t是制表符,前边有8个空格或者4个空格,

  • 一般以4个为主,如果前面的字符不足4个字符用空格补全为4个字符,如果超了4个字符但不足8个字符,同理用空格补全为8个字符

  • 但是如果超了8个字符,同理也得用空格补全为8的倍数,只能大不能小,如果前边有15个字符,后面补全一个空格就可以了

  • 如果有11个字符,和上边一样的,用空格补全为8的倍数,即用7个空格补全就可以了

  • \t一般用来对齐循环的式子

  • 例如下面的九九乘法表

    package com.yy.www;
    public class JAVA08 {
        public static void main(String[] args) {
            System.out.println("1"+"\t11213\t12");   //输出的结果为1   11213   12
            //(第一个\t前面的字符不足4个用空格补全为4个字符)(第二个\t前面有5个字符超了4个不足8个,同理用空格补全为8个字符)
            System.out.println("1"+"1121312432457"); //输出的结果为11121312432457
        }
    }
    

9.打印九九乘法表

  • package com.yy.www;
    public class JAVA08 {
        public static void main(String[] args) {
            for (int i = 1; i <10; i++) {
                for (int j = 1; j <=i; j++) {
                    System.out.print(i+"*"+j+"="+i*j+"\t");
                }
                System.out.println();
            }
        }
    }
    

10.增强for循环

  • 增强for循环主要是用于编辑数组和一些集合对象的

  • 增强for循环的基本语句为

  • for(声明语句:表达式){
        //代码块
    }
    
  • package com.yy.www;
    public class JAVA08 {
        public static void main(String[] args) {
           int[] numbers={10,20,30,40,50};
           //普通的for循环如下
            for (int a=0;a<5;a++){
                System.out.println(numbers[a]);
            }
            System.out.println("==============");
            //增强的for循环就是用于数组偷懒的。简便
            for (int x:numbers) {
                System.out.println(x);
            }
        }
    }
    

11.break,continue,goto

  • break语句会强制退出循环但不会结束程序,break只是使它所在的循环体结束,但不会使程序结束

  • package com.yy.www;
    public class JAVA08 {
        public static void main(String[] args) {
            int n=0;
            while (n<5){
                n++;
                if (n==3){
                    break;
                }
                System.out.println(n);
            }//会直接跳出并结束while循环,因为break语句只能跳出一层循环语句,if只是条件判断语句,它并不属于循环语句
            System.out.println("123");//输出1 2 123,
        }
    }
    
  • continue语句结束此次循环不会再向下执行程序,会回到条件判断语句,继续下一次循环,但不会终止此循环体。

    package com.yy.www;
    public class JAVA08 {
        public static void main(String[] args) {
            int n=0;
            while (n<10){
                n++;
                if (n%2==0){
                    continue;
                }//遇到能整除2的,会直接返回条件判断语句,不会向下执行。
                System.out.println(n);
            }
            System.out.println("123");//输出1 3 5 7 9 123
        }
    }
    
  • goto语句一般在Java中少见,基本用不着,它就是用来标识一些break和continue语句

  • package com.yy.www;
    public class JAVA08 {
        public static void main(String[] args) {
            wxl:for (int i = 101; i <150 ; i++) {
                for (int j = 2; j <i/2 ; j++) {
                    if (i%j==0){
                        continue wxl;//就是一个标识符的作用,用于返回指定位置,标识符可以是任意称号,但必须要符合语法
                }
            }
                System.out.println(i);
            }
        }
    }
    

12.用while和for循环打印出101到150的质数

  • package com.yy.www;
    public class JAVA08 {
        public static void main(String[] args) {
            //打印101到150之间的质数
            boolean a=true;
            for (int i = 101; i < 150; i++) {
                for (int j = 2; j <i/2 ; j++) {
                  if (i%j==0){
                      a=false;
                      break;
                  }
                }
                if (a==true){
                    System.out.println(i);
                }
                a=true;
            }
        }
    }
    
package com.yy.www;
public class JAVA08 {
    public static void main(String[] args) {
        //用while语句打印101到150之间质数
        boolean num1=true;
        int i=101;
        //for循环和while还有do-while可以互通的
        while (i<150){
            int j=2;//一定要注意初始化的位置,同for循环一个样
            while(j<i){
                if (i%j==0){
                    num1=false;
                   break;
                }
            j++;
            }
            if (num1==true){
                System.out.println(i);
            }
            i++;
            num1=true;
        }
    }
}

13.打印三角形及Debug

  • package com.yy.www;
    public class JAVA08 {
        public static void main(String[] args) {
            //打印三角形
            for (int i=1;i<=5;i++){
                for (int j = 5; j>=i; j--) {
                    System.out.print(" ");
                }
                for (int  m = 1;  m <=i ;  m++) {
                    System.out.print("*");
                }
                for (int n = 1; n <i ; n++) {
                    System.out.print("*");
                }
                System.out.println();
                }
            }
        }
    
  • Debug也就是调试指定标记的代码用于查看程序运行时的步骤,直接在代码左边选择所在行的数字用来标记你想查看代码运行时的步骤;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值