首页 > 编程语言 >04.Java 流程控制

04.Java 流程控制

时间:2024-05-01 16:11:25浏览次数:16  
标签:Java Scanner 04 int 流程 System next break 循环

1.用户交互 Scanner

Scanner 对象:获取用户的输入
基本语法:Scanner s = new Scanner(System.in);
通过 Scanner 类的 next() 和 nextLine() 方法获取输入的字符串,在读取前一般使用 hasNext() 和 hasNextLine() 判断是否还有输入的数据。

next():

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

nextLine():

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

注意:此对象中还有其它的类型方法,如:nextInt()、hasNextInt()
Demo1.java

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

        // 判断用户有没有输入字符串
        //if (scanner.hasNextLine())
		if (scanner.hasNext()){
            // 使用 next 方式接收
            // String str = scanner.nextLine();
			String str = scanner.next();
            System.out.println("输出的内容为:"+str);
        }

        // 凡是属于 IO 流的类,如果不关闭会一直占用资源,要养成好习惯用完就关掉
        scanner.close();
    }
}

2.顺序结构

除非特别说明,否则按顺序一行一行执行

3.选择结构

3.1.if 选择结构

语法

if (条件1){
    // 命令语句
} else if (条件2){
    // 命令语句
} else if (条件3){
    // 命令语句
} else{
    // 命令语句
}

3.2.switch 选择结构

变量类型

  1. byte、short、int 或者 char
  2. 从 Java SE 7 以后,switch 支持字符串 String 类型了
  3. case 标签必须为字符串常量或字面量(通过 hashCode 来对比)

语法

switch(expression){
    case value1 :
        //语句
        break; //可选
    case value2 :
        //语句
        break; //可选
    default :
        //语句
}

支持字符串常量:

String name="小明";
switch(name){
    case "小明" :
        System.out.println("小明");
        break;
    case "小红" :
        System.out.println("小红");
        break;
    default :
        System.out.println("小江");
}

4.循环结构

4.1.while 循环

语法:

while(布尔表达式){// 只要表达式成立就一直循环
    //循环内容
}

1到100的和:

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

4.2.do...while 循环

语法:先执行一遍循环内容,再进行布尔表达式判断

do{
    // 循环内容
} while(布尔表达式)

4.3.for 循环

语法

for(初始化; 布尔表达式; 更新){
    // 循环语句
}

计算 1-100 的和:

int sum;
for(int i=0; i <= 100; i++){
    sum += i;
}
System.out.println("sum="+sum);
// 死循环:for(;;){}

九九乘法表:

for(int j = 1; j <= 9; j++){
    for(int i = 1; i <= j; i++){
        System.out.print(j+"*"+i+"="+(j*i)+"\t")
    }
    System.out.println();
}

4.3.增强 for 循环

语法

int[] numbers = {10,20,30,40,50}
for(int x:numbers){// for(int i=0;i<numbers.length;i++)(sout(numbers[i]);)
    System.out.println(x);
}

5.break & continue

break:跳出所有的循环
continue:跳出本次循环
goto 关键字:Java 中没有goto,但有一些 goto 的影子--带标签(指后面跟一个冒号的标识符,如:label:)的break和continue(不建议使用)

6.练习

打印三角形:

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();
}

标签:Java,Scanner,04,int,流程,System,next,break,循环
From: https://www.cnblogs.com/luoluostudy/p/18169417

相关文章

  • 网络接收全流程
    网卡简介网卡是一块通信硬件。属于数据链路层。用户可以通过电缆或无线相互连接。每一个网卡都有一个独一无二的MAC地址(48位),它被写在卡上的一块ROM中。IEEE负责为网卡销售商分配唯一的MAC地址。可以在终端运行sudolshw-Cnetwork来查看网卡型号可以在/lib/modules/$(uname......
  • BSP视频教程第30期:UDS ISO14229统一诊断服务CAN总线专题,常用诊断执行流程精讲,干货分享
    视频教程汇总帖:https://www.armbbs.cn/forum.php?mod=viewthread&tid=110519 【前言】1、继前面分享了CANopen和J1939的专题后,这次继续为大家分享UDS专题视频第1期。2、统一诊断服务(UnifiedDiagnosticServices,简称UDS)是车用电子的通信协议,是电子控制器ECU中设备诊断用的网......
  • Java多线程
    程序,进程,线程程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念;进程是执行程序的一次执行过程,是一个动态的概念,是系统资源分配的单位;通常在一个进程中可以包含若干个线程,线程是CPU调度和执行的单位;若是单核cpu,则多线程是模拟出来的,在一个cpu的情况下,在同......
  • 20240430打卡
    第十周第一天第二天第三天第四天第五天第六天第七天所花时间2h6h代码量(行)166418博客量(篇)11知识点了解设计后台系统界面以及api调试极限测试之科技政策管理系统完成......
  • Java IO流之为什么要手动关闭IO流
    目录1IO流关闭1.1问题引入1.2为什么IO流需要手动关闭1.3正确关闭流姿势介绍1.3.1在try中关流而没在finally中关流1.3.2在关闭多个流时将其放在一个try中1.3.3在循环中创建流在循环外关闭1.3.4关闭多个流时没用遵循后定义先释放原则1.3.5jdk7及以上版本推荐try-......
  • 03.Java 基础语法
    1.注释、标识符、关键字三种注释单行注释://多行注释:/*多行注释*/文档注释:/***@DescriptionHelloWorld*@Authorxxx*/标识符关键字Java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符2.数据类型强类型语言:要求变量的使用严格符合规定,......
  • java EasyExcel 导出不同dto到多sheet,同时有动态字段,分页写入方案,解决存在oom的问题
    思路 1将一次查询数据改成分页查询,比如一次2000条,2将每次查询的数据按业务分组计算每类业务动态列追加的最大次数treeMap追加列2在excel列表头则是追加2列,名称自定义,我这边是补数字,示例追加列1,追加列2我的业务是按数据库存放的图片来确定最大追加列,需要将图片......
  • Java实现自定义指标数据远程写入Prometheus
    主要的流程如下:1>prometheus添加启动参数2>调用http请求来远程写,数据格式是protobuf(一种自定义的编码格式),编码格式是snappy(一种压缩格式)3>远程写通过snappy先压缩,然后将通过protobuf编码的字节数组发送请求;prometheus官网文档远程写提供remote.proto(包含编码和解码),remote.pr......
  • YC278A [ 20240420 CQYC省选模拟赛 T1 ] 作画(paint)
    题意给定排列\(S\),最初\(S_i=i\)。每次进行以下操作,进行\(t\)次。选择下标\(i,j\),使得\(S_i=S_j\)。求进行\(t\)次后,\(S\)有至少\(k\)种数字的概率。\(n\le10,t\le10^{18}\)。Sol考虑概率转方案,变为有多少种方案使得最终状态有\(k\)种数字。不......
  • JavaScript函数
    JavaScript函数函数就是一些功能或语句的封装。在需要的时候,通过调用的形式,执行这些语句。函数也是一个对象函数定义我们使用function关键字定义函数,中文含义是“函数”、“功能”。可以使用如下方式进行定义。函数声明使用函数声明来创建一个函数。语法:function函数名([形......