Java基础之流程控制

Scanner对象

​ 可以获取用户的输入

//创建Scanner对象
Scanner sc = new Scanner(System.in);
Scanner sc1 = new Scanner(System.in);

/*
next()方法
1、一定要读取到有效字符后才可以结束输入
2、对输入有效字符之前遇到的空白,next()方法会自动将其去掉
3、只有输入有效字符后才将其后面输入的空白作为分隔符或结束符
4、next()不能得到带有空格的字符串
 */
System.out.println("使用next方法接收:");
//判断用户是否有输入
if (sc.hasNext()){
    //使用next方法接收
    String str = sc.next();
    System.out.println("next输入为:"+str);
}
/*
nextLine()
1、以Enter为结束符,也就是说nextLine方法返回的是输入回车前所有字符
2、可以获得空白
 */
System.out.println("使用nextLine方法接收:");
if (sc1.hasNextLine()){
    String str1 = sc1.nextLine();
    System.out.println("nextLine输入为:"+str1);
}
//关闭IO流
sc.close();
sc1.close();

//控制台输出
使用next方法接收:
hello work
next输入为:hello
使用nextLine方法接收:
hello work
nextLine输入为:hello work
顺序结构

​ 至上而下的执行

选择结构

​ if单选结构

//输入a,b两个整数,b大于a时输出“b>a”
Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
int b = scanner.nextInt();
if (b>a){
    System.out.println("b>a");
}

​ if双选结构

//输入a,b两个整数,b大于a时输出“b>a”否则输出“b<=a”
Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
int b = scanner.nextInt();
if (b>a){
    System.out.println("b>a");
}else{
    System.out.println("b<=a");
}

​ if多选结构

//输入a,b两个整数,b大于a时输出“b>a”,b小于a输出“b<a”,否则输出“a=b”
Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
int b = scanner.nextInt();
if (b>a){
    System.out.println("b>a");
}else if(b<a){
    System.out.println("b<a");
}else{
    System.out.println("b=a");
}

嵌套if结构

//如果a=1且b=2,则输出"b等于2,a等于1"
if(a==1){
    if (b==2){
        System.out.println("b等于2,a等于1");
    }
}

switch多选择结构

​ 如果没有break,会把以下的代码全部执行(case穿透现象)

//输出a=1,2,3或其他时的情况
switch (a){
    case 1:
        System.out.println("a=1");
        break;
    case 2:
        System.out.println("a=2");
        break;
    case 3:
        System.out.println("a=3");
        break;
    default:
        System.out.println("a>3");
}

反编译:class---反编译为java,IDEA可以进行反编译,把class文件拷入项目中(文件夹层面拷入),直接用IDEA打开即可

循环结构

​ while循环

int i = 1;
while (i>100//布尔表达式){
    //循环内容
    i++;
    System.out.println(i);
}
  • 布尔表达式为true时,循环会一直进行下去
  • 先比较,为true时,再执行循环内容

​ do...while循环

do {
    //循环内容
    i++;
    System.out.println(i);
}while (i>200/*布尔表达式*/);
  • 布尔表达式为true时,循环会一直进行下去
  • 先执行循环内容,再比较,至少执行一次循环内容

for循环

//初始化;条件;迭代
for (int j=1 ; j<100 ; j++){
    System.out.println(j);
}
for (;;){
    
}
int[] array={10,20,30,40,50};
for (int x:array) {
    System.out.println(x);
}
  • for循环是支持迭代的一种通用结构,是最有效、最灵活的循环结构
  • for循环执行的次数在执行前就能确定
  • 最先执行初始化语句,然后比较布尔表达式,为true时执行循环体,然后再迭代,可以是空语句
  • brack能强制终止循环
  • continue能跳过某次循环

练习题:打印三角形

public static void sjx(){
    int a = 9;
    for (int i = 1;i<10;i++){
        for (int j = 1;j<=i;j++){
            //为奇数时打印
            if (!(i%2==0)){
                //计算打印的空格数
                for (int k = (a-1)/2;k>0;k--){
                    if (j==1){
                        //每一行第一个星号前打印的空格
                        System.out.print("\t");
                    };
                }
                //每行打印空格后,计算下一行打印的空格数
                if(j==1){
                    a-=2;
                }
                //打印星号,除最后一行外,只打印第一个和最后一个星号
                if (j==i){
                    //打印每行最后一个星号并换行
                    System.out.println("*");
                }else if(j==1||i==9){
                    //打印第一个星号和打印最后一行星号
                    System.out.print("*"+"\t");
                }else{
                    //
                    System.out.print("\t");
                }
            }
        }
    }
}

/*=================================*/
//控制台输出
				*
			*		*
		*				*
	*						*
*	*	*	*	*	*	*	*	*

public static void sj(){
    //输出5行三角形
    for (int i = 1;i <= 5;i++){
        //每行前的空格
        for (int j = 5;j>=i;j--){
            System.out.print("\t");
        }
        //左半个三角形
        for (int j = 1;j<=i;j++){
            if (j==1||i==5){
                //输出每行第一个星和最后一行的星
                System.out.print("\t*");
            }else{
                //除边控外用空格代替
                System.out.print("\t");
            }
        }
        for (int j= 1;j<i;j++){
            if (j==(i-1)||i==5){
                //输出每行最后一个星和最后一行的星
                System.out.print("\t*");
            }else{
                //除边控外用空格代替
                System.out.print("\t");
            }
        }
        //换行
        System.out.println();
    }
}
//控制台输出
						*
					*		*
				*				*
			*						*
		*	*	*	*	*	*	*	*	*

本篇为学习记录,源自https://www.kuangstudy.com/course,跳转

posted @   曦雨琉  阅读(23)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示