java流程控制

scanner类

scanner类是一个简单的文本扫描器,可以用其对象来获取用户的输入,代码如下:

        //创建一个Scanner对象来负责接收用户的输入
        Scanner scanner = new Scanner(System.in);
        //判断是否有下一行
        if (scanner.hasNext()){
            String str=scanner.next();//等待用户输入,并将用户输入赋值给str
            System.out.println(str);
        }
        scanner.close();//涉及到IO流的都需要关闭资源,否则容易造成资源的浪费

next()和nextLine()的区别在于

  1. 前者是遇到空格结束,后者是遇到回车结束。
  2. next如果之前有空格会自动去掉,nextLine会连同空格一起获取。

scanner还可以精确到类型,如nextInt、nextFloat等,用法和上面一样。

//练习,输入多个数,求和和平均数,第个数用回车确认,输入非数字程序结束并输出结果
Scanner scanner=new Scanner(System.in);
//需要定义一个和
double sum=0;
//定义一个数量代表输入数字的个数
int num=0;
//通过while循环来获取输入
while(scanner.hasNextDouble()){
    double input=scanner.nextDouble();//等待用户输入
    sum+=input;//sum=sum+input
    num++;
    System.out.println("输入的是第"+num+"个数,目前的和为"+sum);
}
System.out.println("总共输入"+num+"个数,总和为"+sum+",平均数为"+sum/(double)num);
scanner.close();

顺序结构

java的基本结构就是顺序结构,除非特别指明,否则就是按顺序一步步执行。,顺序结构是任何一个算法都离不开的一种基本算法结构

选择结构

if单选择结构:一个if语句,无else

if双选择结构:if...else...,有两个选择可走

if多选择结构:if...else if...else if.....else,有多个选择可走

if的嵌套:在if里面加if

switch多选择结构,从java7开始,可以支持字符串类型了,本质是后台匹配的Hashcode(要注意break,不加break会”穿透“):


switch(){

​	case xxx:

​	xxxx;

​	break;

​	...

​	deflaut xxx:	

}	 

反编译,将class从文件夹的层面copy到项目目录中,可以在IDEA中直接打开

循环结构

循环条件一直为true,会陷入死循环

while:最基本的循环结构

do ...while:和while相似,不过至少会执行一次

for:最灵活,最有效的,执行次数在执行前就已经确定了,也可以是空语句(表示死循环)

增强for循环

JDK5新增,主要为了方便数组和集合的遍历,一种语法糖。

int[] numbers={10,20,30,40};
for (int x :
        numbers) {
    System.out.println(x);
}

break和continue

break用于强制退出循环

continue用于退出此次循环,继续执行下次循环

标签语法用于跳转(基本不用),java中没有goto

//求101-200的质数
out: for (int i=101;i<=200;i++){//定义一个out标签 
     for (int j=2;j<i/2;j++){
         if (i%j==0)
         continue out;//跳转到out标签
     }
    System.out.println(i);
 }
posted @ 2021-09-07 23:28  是韩信啊  阅读(25)  评论(0编辑  收藏  举报