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,跳转
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix