4. JavaSE 流程控制

流程控制

用户交互Scanner

Scanner对象

  • 之前我们学习的基本语法并没有实现程序和人的交互,java给我们提供了一个工具类,可以获取用户的输入java.util.scanner是java5的新特征,我们通过Scanner来获取用户输入。

  • 基本语法
    Scanner s = new Scanner(system.in);

  • 通过Scanner类的 next()与 nextLine()方法获取用户的字符串,读取之前一般用hasNext()与hasNextLine()判断是否还有输入的数据。

next()

使用next方式接收一下输入的数据

//创建一个扫描器对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);

//next方式接收字符串
System.out.println("Next方式接收:");
//判断用户不有没有输入字符
if(scanner.hasNext()){
  string str = scanner.next();
  System.out.println("输入内容:" + str);
  //input: hello word
    //输入的内容为:hello
}
//凡是属于IO流的类如果不关闭会一直占用资源
scanner.close();

nextLine()

  • Enter作为结束符,即返回输入回车之前所有的字符。
  • nextLine()可以获取空白
//从键盘接收数据
Scanner scanner = new Scanner(System.in);
System.out.println("请输入数据:");

String str = scanner.nextLine();
System.out.println("输入的内容为:"+str);
scanner.close();
System.out.println("请输入整数:");
if(scanner.hasNextInt()){  //hasNextInt判断输入整数,还有hasNextDouble.....
    int i=scanner.nextInt();
    System.out.println("输入的整数为:"+i);
}else {
    System.out.println("输入的不是整数数据");
}

next()与nextLine()区别

next():

  • 1、一定要读取到有效字符后才可以结束输入。
  • 2、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
  • 3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
  • 4、next()不能得到带有空格的字符串。

nextLine():

  • 1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
  • 2、可以获取空白

顺序结构

  • Java的基本结构就是顺序结构,除非特别指明,否则就按语句一条一条执行。
  • 顺序结构是最简单的算法结构。
  • 语句语句之间是按从上到下执行的,它是由若干个依次执行的处理步骤组成的,它是如何一种算法都离不开的一种基本算法结构。

选择结构

  • if单选择结构 if()
  • if双选择结构 if(){}else{}
  • if多选择结构 if(){}else if(){}else{}
  • 嵌套的if结构 if(){if(){}}
int a = 80;
if(a>60){
    System.out.println("及格");
    if(a>80) System.out.println("且优秀");
}else if(a>0){
    System.out.println("不及格");
}else {
    System.out.println("缺考");
}

swith多选择结构

char grade = 'C'; //JDK新特性 可以是字符串(字符本质还是数字)
switch (grade){
    case 'A':
        System.out.println("优秀");
        break; //可选,跳出当前结构
    case 'B':
        System.out.println("良好");
        break;
    case 'C':
        System.out.println("合格");
        break;
    default: //默认,以上值没匹配到
        System.out.println("不及格");
        break;
}

循环结构

wihle循环

  • while是最基本的循环,它的结构为:
while(布尔表达式) {
  //循环内容
}

只要布尔表达式为true,循环就会一直执行下去。
4. JavaSE 流程控制

//计算1+2+3+...+100
int i=0;
int sum=0;
while(i<100){
    i++;
    sum+=i;
}
System.out.println(sum); //5050

do...while循环

//先执行后判断,至少执行一次
do{
    i++;
    sum+=i;
}while(i<100) //跟上面效果一样

for循环

//(初始化;条件判断;迭代)
for(int i=0;i<100;i++){
    i++;
    sum+=i;
}
for(; ; ){...} //死循环
//练习:输出1-1000能被5整除的数,每行输出3个
for (int i = 1; i <= 1000; i++) {
    if(i%5==0){
        System.out.print(i+"\t"); //输出完不换行
    }
    if(i%(3*5)==0){
        System.out.println();
    }
}
//练习2:输出九九乘法表
for(int i=1;i<=9;i++){
    for(int j=1;j<=i;j++){
        System.out.print(j+"*"+i+"="+i*j+"\t");
    }
    System.out.println();
}

增强for循环

int [] numbers = {10,20,30,40,50}; //定义一个数组
for (int x:numbers){
    System.out.println(x); //遍历数组的元素 10 20 30 40 50
}
//相当于
for(int i=0;i<5;i++){
    System.out.println(numbers[i]);
}

break&continue

  • break可以在任何循环的主体部分,用于强行退出循环,也可以用在switch语句。
  • continue用于循环语句中,终止某次循环过程,跳过剩余语句,之后进行下一次循环条件判断。
  • 标签:后面跟一个冒号的标识符lable:
//打印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+" ");
}
上一篇:数据中台还不清楚?看完Smartbi的这篇介绍你就懂了


下一篇:Navicat Premium15安装与激活