flora222

Jvav流程控制

Java流程控制

2026.01.11

用户交互Scanner


scanner接收用户输入的主要方式有两种;

凡是属于io流(即输入输出)的类,要关闭才能不占用资源!!!!

使用scanner.close()关闭

  1. next()

    • 一定要读取到有效字符后才可以结束输入

    • 对于输入有效字符之前的空白,next()方法会自动将其去掉

    • 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符

    • next()不能得到带有空格的字符串

      package Control;
      
      import java.util.Scanner;
      
      public class Demo01 {
          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();
      
      
              //输入Hello World,输出的是Hello
          }
      }
      
      
  2. nextLine()

    • 以Enter为结束符,也就是nextLine()返回的值是回车之前的所有字符

    • 可以获得字符串中间的空白

      package Control;
      
      import java.util.Scanner;
      
      public class Demo02 {
          static void main(String[] args) {
              Scanner scanner=new Scanner(System.in);
              System.out.println("使用nextline方式接收:");
              if(scanner.hasNextLine()){
                  String str=scanner.nextLine();//真正开始读取输入的语句
                  System.out.println("输出的内容为:"+str);
              }
              scanner.close();
              //输入Hello World ,输出Hello World
          }
      }
      
      

在程序中,我们可以使用hasNext***()来判断用户输入的数据类型

其中***代表要判断的数据类型

package Control;

import java.util.Scanner;

public class Demo03 {
    static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        //从键盘接收数据
        int i=0;
        double a=0;
        System.out.println("请输入整数:");
        
        if(scanner.hasNextInt()){
            i=scanner.nextInt();
            System.out.println("整数 "+i);
        }
        else{
            System.out.println("输入类型不正确!!");
        }

        System.out.println("请输入小数:");
        
        if(scanner.hasNextDouble()){
            a=scanner.nextDouble();
            System.out.println("小数 "+a);
        }
        else{
            System.out.println("输入类型不正确!!");
        }
        scanner.close();
    }
}
//输出结果:
//请输入整数:2  整数 2  请输入小数:2.33  小数 2.33

hasNext***()判断示例:

输入多个数字,求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入

package Control;

import java.util.Scanner;

public class Demo04 {
    static void main(String[] args) {
        //输入多个数字,求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入
        Scanner scanner=new Scanner(System.in);
        double sum=0;
        int i=0;
        double n=0;
        double average=0;
        System.out.println("请输入数字,以非数字结尾可结束输入\n");
        //这里判断输入类型是否为double类型
        while(scanner.hasNextDouble()) {
                n=scanner.nextDouble();
                sum=sum+n;
                i++;
        }
        average=sum/i;
        System.out.println("总和是 "+sum);
        System.out.println("平均值 "+average);
        scanner.close();
        //请输入数字,以非数字结尾可结束输入
        //
        //1
        //2.3
        //4.5
        //3.4
        //t
        //总和是 11.2
        //平均值 2.8
    }
}

顺序结构


这里不多说了,就是代码从上到下执行

啊哈这个不会的话

你的c语言基础在天上失望的看着你

选择结构


单选择结构————> if语句

双选择结构————> if-else语句

多选择结构————> if- else if -else语句

嵌套if结构

switch多选择结构

选择结构这一节与c语言几乎一模一样,不多赘述

需要注意的:

在对字符串进行比较时,不要使用==!!!

Scanner scanner=new Scanner(System.in);
        System.out.println("请输入字符串");
        String a=scanner.nextLine();
        //equals()是判断字符串是否相等的方法,判断字符串不要用==!!!
        if(a.equals("Hello")){
            System.out.println(a);
        }

循环结构


while循环

do-while循环

for循环

也是,和c语言大差不差,这里不过多赘述

需要注意的:

我们之前一直用的System.out.println()是竖着输出值的

要想正常实现横着输出,应该用System.out.print()

即:println输出完会自动换行

​ print输出完不会换行

加强for循环

package com.flora.base.struct;

public class forDemo06 {
    static void main(String[] args) {
        int[] number={1,2,3,4,5};
        //常规遍历数组方式:
        for(int i=0;i<5;i++){
            System.out.print(number[i]);
        }
        //输出:12345
        
   
        //for循环加强后的遍历方式:
        for(int x:number){
            System.out.print(x);
        }
        //输出:12345
    }
}

for循环加强版使得数组遍历更加方便编写了呢

真是一次酣畅淋漓又具有实用性的加强啊!!!

(加强格莉丝!!!(误

goto语句,当扩展使用的没必要真明白哈

package com.flora.base.struct;

public class gotoDemo {
    static void main(String[] args) {
        //打印101-150之间的所有质数
       outer: for(int i=101;i<=150;i++){
            for(int j=2;j<(i/2);j++){
                if(i%j==0){
                    continue outer;
                }
            }
            //如果i不是质数,回到大循环重新执行
           //如果i是质数,输出
           System.out.print(i+" ");
        }
    }
}
//输出结果:101 103 107 109 113 127 131 137 139 149 

空心三角形(打着玩呗~


package com.flora.base.struct;

import java.util.Scanner;

public class Test {
    static void main(String[] args) {
        //打印指定行数的三角形
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入一个n:");
        int n=scanner.nextInt();
        for(int i=1;i<n;i++) {

            for (int j = 1; j <= n - i; j++) {
                System.out.print(" ");
            }
            if (i == 1) {
                System.out.println("*");
                continue;
            }
            else {
                System.out.print("*");
                for (int a = 1; a <= 2 *i-3; a++) {
                    System.out.print(" ");
                }
                System.out.print("*");
            }
            System.out.println();
        }
        for(int k=0;k<2*n-1;k++){
            System.out.print("*");
        }
        scanner.close();
    }
}
//输出结果:
//请输入一个n:
//5
//    *
//   * *
//  *   *
// *     *
//*********

posted on 2026-01-11 23:46  Flora2  阅读(3)  评论(0)    收藏  举报

导航