从零开始的Java学习教程——三:Java流程控制

用户交互:Scanner

之前我们写的代码并未实现人和程序的交互,今天我们来学习交互的方法

基本语法

Scanner s=new Scanner(System.in);
通过Scanner类的next()与nextLine()方法获取输入的字符串,使用hasNext()与hasNextline()判断是否还有输入的数据

import java.util.Scanner;//自动导入的包

public class td01 {
    public static void main(String[] args) {
        //创建一个扫描器变量,用于接收键盘的输入
        Scanner scanner=new Scanner(System.in);//输入后会为我们自动导入用到的包
        System.out.println("使用next方式接受:");
        if(scanner.hasNext())//要求我们输入字符串并判断是否有效,无效的有空格,换行等{
            String str=scanner.next();//使用next方式接收用户的输入
            System.out.println("输入的内容为:"+str);
        }
        scanner.close();//关闭此IO流的类,避免一直占用资源 (io流,即输入输出流)
    }
}

运行结果
在这里插入图片描述

import java.util.Scanner;

public class td02 {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.println("使用nextLine方式接受:");
        if(scanner.hasNextLine()){
            String str=scanner.nextLine();//使用nextLine方式接收
            System.out.println("输出的内容为:"+str);
        }
        scanner.close();
    }
}

运行结果
在这里插入图片描述
另一个例子
在这里插入图片描述

我们现在不需要清楚的知道具体的用法,只需要了解个大概就行了

next()和nextLine()的区别

next():

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

对输入有效字符之前遇到的空白,会去掉

输入字符后将空白作为结束符

不能得到有空格的字符串

nextLine():

以enter为结束符

可以获得空白

其他输入

还可以输入整型,浮点型等

public class td04 {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);//Scanner是类,scanner是变量名
        int i=0;
        float f=0.0f;
        System.out.println("请输入整数:");
        if(scanner.hasNextInt()){
            i=scanner.nextInt();
            System.out.println("整数为:"+i);
        }else{
            System.out.println("你输入的不是整数!");
        }
        System.out.println("请输入小数:");
        if(scanner.hasNextFloat()){
            f=scanner.nextFloat();
            System.out.println("小数为:"+f);
        }else{
            System.out.println("你输入的不是小数!");
        }
        scanner.close();
    }
}

两种输入及其运行结果
在这里插入图片描述
在这里插入图片描述
注意,第二张图输入10.1后i就没有接收这个值,因此他会进入下一个if语句

顺序结构

Java的基本结构就是顺序结构
即从上往下依次执行(除非特别指明)

选择结构

if语句

Java中的if语句与c语言中的if语句相同,格式为
if(判断语句)
{
执行语句
}
else if(判断语句)
{
执行语句
}
else
{
执行语句
}
并且可以嵌套使用
一个if语句例子

import java.util.Scanner;

public class ta06 {
    public static void main(String[] args) {
        System.out.println("请输入内容:");
        Scanner scanner=new Scanner(System.in);
        String s=scanner.nextLine();
        if(s.equals("hello"))//判断字符串是否相等(不能用==)
        {
            System.out.println("s");
        }
            scanner.close();
    }
}

如果输入hello,则会输出s
注意:一旦有一个判断语句成立,其余的判断语句不再执行

方法的寻找

另外,在idea中,我们把光标移动到Scanner上,按住CTRL点击鼠标左键,即可进入此界面
在这里插入图片描述
我们找到页面左下角的结构
在这里插入图片描述
进入结构
在这里插入图片描述
我们会发现Scanner的很多方法都在这里

switch语句

Java中的switch与c语言中相同,举例说明用法
在这里插入图片描述
如图,switch中会执行值所对应case中的命令,若没有对应的,则会执行default中的命令
注意:每个case中最后要加入break;否则程序将会执行下一个case/default,直到语句结束或遇到break;

public class switch01 {
    public static void main(String[] args) {
        char grade='c';
        switch(grade){
            case 'a':
                System.out.println("优秀");
            case 'b':
                System.out.println("良好");
            case 'c':
                System.out.println("及格");
            case 'd':
                System.out.println("再接再厉");
            case 'e':
                System.out.println("挂科");
                break;
            default:
                System.out.println("未知命令");
        }
    }
}

如图,结果会输出
及格
再接再厉
挂科

反编译

图解说明
先按ctrl+alt+shift+s打开项目结构
在这里插入图片描述
复制其中的路径并在我的电脑中找到production,并一路找到class文件
在这里插入图片描述
找到class文件后,把它拖进存放Java文件的目录中,即可看到反编译后的文件
在这里插入图片描述
3在这里插入图片描述
也可以直接选择打开文件
在这里插入图片描述

循环结构

while

while()
{;}
若括号内表达式值为true,则执行大括号内的指令,直至括号内值为false
在这里插入图片描述

do while

do{;}while();
与while大同小异,先执行大括号内指令,再判断条件

for

格式for(初始化值;判断条件;执行完大括号内语句执行的语句)
{;}
大括号内为判断条件后执行的语句
快捷键,输入100.for或者fori自动生成for循环
前者生成for(i=0;i<100;i++){}
后者生成for(i=0;i<;i++){}

break&continue

break

break用于跳出各种循环即switch语句

continue

用于循环中,跳出此次循环,并进行条件判断来决定是否继续循环

标签

Java中虽然没有goto语句,但有标签功能

public class label01 {
    public static void main(String[] args) {
        //求101到150之间的质数
        int count=0;
        outer:for (int i = 101; i <= 150; i++) {
            continue outer;//跳到continue
        }
    }
}

如图所示,在程序遇到continue 标签名后。就会自动跳转到标签名所在位置继续执行

练习

打印九九乘法表
打印一个如图所示的三角形,假设第一行*前有三个空格,第二行前两个,第三行前一个,第四行前没有
在这里插入图片描述

提示

  1. 九九乘法表打印后你可能会发现并不美观,这时可以使用\t命令,它的作用效果如图所示
    在这里插入图片描述
    在这里插入图片描述
    使用它可以使a占用的空间设为固定值,\t在左边则a向右对齐
  2. print是打印并不换行的函数,println打印完自动换行
  3. 如果程序中有错误,可以设置断点,并进行调试,程序将停在断点,点击蓝色向下箭头可一步步执行程序,并可以在下方监视相关变量
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_bxzzy_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值