首页 > 编程语言 >java流程控制

java流程控制

时间:2023-04-26 19:55:28浏览次数:30  
标签:语句 控制 java scanner int 流程 break while 循环

scanner

创建一个新的扫描器对象,用于接受键盘数据

Scanner scanner = new Scanner(System.in);
//使用next方式接收
String srt = scanner.next();
//使用nextLine方式接收
String srt = scanner.nextLine();

next():

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

nextLine():

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

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

Scanner scanner = new Scanner(System.in);
        double sum = 0;
        int m =0;
        while (scanner.hasNextDouble()){
            double x = scanner.nextDouble();
            m = m + 1;
            sum = sum + x;
        }
        System.out.println(m+"个数的和为"+sum);
        System.out.println(m+"个数的平均值是"+(sum/m));
scanner.close();

顺序结构

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

选择结构

  • if单选择结构

    if(){
        
    }
    
  • if双选择结构

    if(){
        
    }else{
        
    }
    
  • if多选择结构

    if(){
        
    }else if(){
        
    }else{
        
    }
    
  • if嵌套选择结构

    if(){
        if(){
            
        }
    }else{
        
    }
    
  • switch多选择结构

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

没有break会导致case穿透

switch语句中的变量类型可以是:byte、short、char

从java SE 7开始switch支持字符串String类型了

同时case标签必须为字符串常量或字面量

循环结构

  • while循环

    while(布尔表达式){
        
    }
    while(ture){
        //死循环
    }
    
  • do...while

    do{
        
    }while()
    

    while和do...while的区别

    while先判断再执行,do...while先执行再判断

  • for循环

    for(初始化;布尔值;更新){

    }

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

    是最有效最灵活的循环结构

println  输出玩会换行
print 输出完不换行
  • 增强for循环

    for(声明语句:表达式){
    代码句子
    }

    int[] numbers={10,20,30,40,50}; //定义了一个数组
    		//遍历数组
            for(int x:numbers){
                System.out.println(x);
            }
    
  • break continue

    break在任何循环语句的主体部分,均可用break控制循环流程。break用于强行退出循环

    continue 语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行的循环判定。

        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+" ");
        }

练习

public static void main(String[] args) {
        //打印5行三角形
        for(int i=1;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,int,流程,break,while,循环
From: https://www.cnblogs.com/hardrockstudy/p/17357093.html

相关文章

  • 深入java虚拟机 - 垃圾收集 - 引用计数收集器
         引用计数是垃圾收集的早期策略。在这种方法中,堆中每一个对象都有一个引用计数。一个对象被创建了,并且指向该对象的引用被分配给一个变量,这个对象的引用计数被置为1。当任何其他变量被赋值为对这个对象的引用时,计数加1。当一个对象的引用超过了......
  • java 多线程 synchronized
    程序1:packagetestsynchronized;publicclassThread1implementsRunnable{ @Override publicvoidrun(){ synchronized(this){ for(inti=0;i<10;i++){ System.out.println(Thread.currentThread().getName() +"synchronizedloo......
  • java 一些奇怪的笔试题
    例1:packagecom.test;publicclassTest1{ publicvoidtestExit(){ try{ System.exit(0); }finally{ System.out.println("testExit"); } } publicvoidtestReturn(){ try{ return; }finally{ System.out.println("......
  • Golang - 5 Golang的流程控制:if/else、for、switch
    5流程控制目录5流程控制1if/else1.1语法2for2.1语法2.2简单写法与实现while的功能2.3基于迭代的循环、基于索引的循环3switch3.1switch的基本使用3.2各种形式1if/else1.1语法 //基本形式if条件1{ }else条件2{ }else{ }多个分支age:=......
  • docker启动rabbitMQ,通过java创建交换机、队列、绑定
    通过docker启动rabbitMQdockerrun-d--namerabbitmq-p5671:5671-p5672:5672-p4369:4369-p25672:25672-p15671:15671-p15672:15672rabbitmq:management  将其修改为自启动:dockerupdaterabbitmq--restart=always  以下为通过java代码进行创建交换机......
  • 【Java设计模式】装饰者设计模式
    目录1.装饰者模式(Wrapper)概念2.装饰者是什么?3.装饰者设计模式-参与者3.1组成3.1Demo1.Component(抽象构件)2.ConcreteComponent(具体构件)3.Decorator(抽象装饰类)4.ConcreteDecorator(具体装饰类)5.Test类:3.2总结4.JDK源码中的装饰者设计模式扩展:开闭原则1.装饰者模式(Wra......
  • VScode 创建Java项目
    1.点击view找到命令行输入java(ctrl+shift+P)src:一般是自己写的源代码的文件lib:外部引用库等其他的内容bin:二进制程序,用以存放未来的编译文件等  ......
  • 树莓派4B-Python-控制超声波模块
    树莓派4B-Python-控制超声波模块超声波模块:超声波模块为常用的HC-SR04型号,有四个引脚,分别为Vcc、Trig(控制端)、Echo(接收端)、GND,使用起来也比较简单。在树莓派最新官方系统Raspbian中都安装有一个比较好使用的GPIO库,名为“gpiozero”,它包含了许多模块的使用函数,直接调用就好。参......
  • javascript操作cookie
    functionsetCookie(name,value){varDays=30;varexp=newDate();exp.setTime(exp.getTime()+Days*24*60*60*1000);document.cookie=name+"="+escape(value)+";expires="+exp.toGMTString();......
  • java 多线程的start()和run()的理解
    run()方法中是各个线程要执行的具体内容。所以当一个线程直接调用run()时那么直接开始执行方法体,这是在main线程中的多个线程只能时按照顺序的等待前面的线程结束run()方法的执行。而调用start方法只是线程进入准备阶段(Ready),并没有真正执行,这需要JVM进行分配时间片进行轮转线程执......