JavaSE01

JavaSE01

博主学习视频:b站狂神说Java

用户交互Scanner

java通过Scanner类来获取用户的输入

Scanner s = new Scanner(System.in);

通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前需要使用hasNext()与hasNextLine()来判断是否还有输入的数据。

  • next():一定要读取到有效字符才可以结束输入,同时不会读取空格
  • nextLine():得到输入回车(Enter)之前的所有字符,可以获得空格
Scanner scanner = new Scanner(System.in);//从键盘接受数据
System.out.println("使用next方式接收:");
if ((scanner.hasNext()))//判断是否还有输入,*可以去除*
{
	String str = scanner.next();//输入hello world
	System.out.println("输出为:"+str);//输出hello
    
    //String str = scanner.nextLine();//输入hello world
    //System.out.println("输入为:"+str);//输出hello world
    
}
scanner.close();//IO流的类,与c的指针类似,及时关闭有助于节省资源
//输入多个数字,计算总和与平均数,通过非数字终止输入
public class Demo {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int i = 0;
        double sum = 0;
        System.out.println("请输入数字,输入非数字则停止输入:");
        while (scanner.hasNextDouble()){
            double d = scanner.nextDouble();
            sum+=d;
            i++;
        }
        System.out.println("和:"+sum+"\n均值:"+(sum/i));
        scanner.close();
    }
}

顺序结构

从上到下的执行顺序

选择结构

if单选择结构

if(布尔表达式){

​ 执行语句 //当布尔表达式的结果为true

}

public class Demo {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入:");
        String str = scanner.nextLine();
        //equals用于比较字符串是否一致
        if(str.equals("hello world")||str.equals("布达鸟")){
            System.out.println("你怎么睡得着的!我感觉匪夷所思鸭!");
        }
        scanner.close();
    }
}

if双选择结构

if(布尔表达式){

​ 执行语句1 //当布尔表达式的结果为true

}else{

​ 执行语句2 //当布尔表达式的结果为false

}

if多选择结构

if(布尔表达式1){

​ 执行语句1 //当布尔表达式1的结果为true

}else if(布尔表达式2){

​ 执行语句2 //当布尔表达式2的结果为true

}else{

​ 执行语句3 //当布尔表达式的结果为false

}

嵌套的if结构

if(布尔表达式1){

​ if(布尔表达式2){ //当布尔表达式1的结果为true

​ 执行语句 //当布尔表达式2的结果为true

​ }

}

switch多选择结构

switch(表达式){

​ case value: //表达式值与value相等

​ 执行语句

​ break; //省略不会跳出

​ case value: //表达式值与value相等

​ 执行语句

​ break; //省略不会跳出

​ default:

​ 执行语句

}

public class Demo {
    public static void main(String[] args) {
        char c = 'c';
        switch (c){
            case 'a':
                System.out.println("优秀");
                break;
            case 'b':
                System.out.println("良好");
                break;
            case 'c':
                System.out.println("及格");
                break;
            default:
                System.out.println("不及格");
        }
    }
}

switch支持字符串键值(case),主要是通过哈希值来判断。

循环结构

while循环

while(布尔表达式){

​ 执行内容 //布尔表达式为true可以一直执行

} //当布尔表达式的值一直为true时会陷入死循环

public class Demo04 {
    public static void main(String[] args) {
        int i = 1;
        int sum=0;
        while (i<=100){
            sum+=i;
            i++;
        }
        System.out.println(sum);
    }
}

do -while循环

do{ //第一次执行不需要判断

​ 执行内容 //布尔表达式为true可以一直执行

}while(布尔表达式)

do-while循环至少执行一次

for循环

for(初始化;布尔表达式;更新){

​ 执行语句

}

for循环是支持迭代的一种通用结构,是最有效、最灵活的循环结构。

for循环的执行次数是确定的


增强for循环

for(声明语句;表达式){

​ 执行语句

}

增强for循环主要用于数组或集合

public class Demo {
    public static void main(String[] args) {
        int[] numbers = {10,20,30,40,50}; //定义了一个数组
        for (int i = 0; i < 5; i++) {
            System.out.println(numbers[i]);
        }
        System.out.println("==================");
        for (int x : numbers) {     //for循环遍历数组的元素
            System.out.println(x);  //10 20 30 40 50
        }
    }
}

99乘法表

public class Demo {
    public static void main(String[] args) {
        for (int i = 1; i < 10; i++) {
            for (int j = 1 ; j <= i; j++){
                System.out.print(j+"*"+i+"="+(j*i)+"\t");
            }
            System.out.println();
        }
    }
}

break & continue

  • break用于强行终止循环,不执行循环中剩余的语句
  • continue用于终止某次循环过程,跳过循环体中尚未执行的语句,接着开始进行下一次循环的判定
延展
  • Java中没有goto的用法,但goto仍然是Java的一个保留字

  • “标签”是指后面跟一个冒号的标识符,例:label:

    标签可用于循环语句之前,通过break和continue中断到存在标签的地方

public class LabelDemo {
    public static void main(String[] args) {
        //打印101~150之间所有的质数
        int count = 0;
        qq:for (int i = 101; i <= 150; i++) {   //循环语句开头设立标签
            for (int j = 2; j < i/2; j++){
                if(i % j == 0){
                    continue qq;    //中断后会从标签的位置开始执行,而不是下一个内循环
                }
            }
            System.out.print(i+"\t");
        }
    }
}

练习题:打印三角形

public class testDemo {
    public static void main(String[] args) {
        //打印三角形
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要打印的行数:");
        int n = scanner.nextInt();
        scanner.close();
        System.out.println("===================");
        for (int i = 1; i <= n; i++) {
            for (int j = n-i; j >=0; j--){
                System.out.printf(" ");
            }
            for (int m = 2*i-1; m > 0; m--){
                System.out.printf("*");
            }
            System.out.println();
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值