Java流程控制
1、用户交互Scanner
-
基本语法
Scanner s = new Scanner (System.in)
-
通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断还有输入的数据。
public class Demo01 {
public static void main(String[] args) {
//创建一个扫描器对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);
System.out.println("使用next方式接收:");
//判断用户有没有输入字符串
if(scanner.hasNext()){
//使用next方式接收
String str = scanner.next();//程序会等待用户输入完毕
System.out.println("输出内容为:"+str);
}
//凡是属于IO流的类如果不关闭会一直占用资源
scanner.close();
}
}使用next方式接收:
Hello World!
输出内容为:Hellonext():
- 1、一定要读取到有效字符后才可以结束输入。
- 2、对输入有效字符之前遇到的空白,next()方法会自动将其去掉。
- 3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
- 4、next()不能得到带有空格的字符串。
public class Demo2 {
public static void main(String[] args) {
//创建一个扫描器对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);
System.out.println("使用nextLine方式接收");
//判断用户有没有输入字符串
if(scanner.hasNextLine()){
//使用next方式接收
String str = scanner.nextLine();//程序会等待用户输入完毕
System.out.println("输出的内容为:"+str);
}
//凡是属于IO流的类如果不关闭会一直占用资源
scanner.close();
}
}
使用nextLine方式接收
Hello World!
输出的内容为:Hello World!
nextLine():
-
1、以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符。
-
2、可以获得空白。
2、顺序结构
-
JAVA的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行。
3、选择结构
-
if单选择结构
if(布尔表达式){
//如果布尔表达式为true将执行的语句
} -
if双选择结构
if(布尔表达式){
//如果布尔表达式的值为true
}else{
//如果布尔表达式的值为false
}
-
if多选择结构
if(布尔表达式 1){
//如果布尔表达式 1的值为true执行代码
}else if(布尔表达式 2){
//如果布尔表达式 2的值为true执行代码
}else if(布尔表达式 3){
//如果布尔表达式 3的值为true执行代码
}else{
//如果以上布尔表达式都不为true执行代码
} -
if嵌套结构
if(布尔表达式 1){
//如果布尔表达式 1的值为true执行代码
if(布尔表达式 2){
//如果布尔表达式 2的值为true执行代码
}
}
-
switch多选择结构
switch(expression){
case value:
//语句
break;//可选
case value:
//语句
break;//可选
//可以有任意数量的case语句
default://可选
//语句
}
switch语句中的变量类型可以是:
- byte、short、int或者char
- 从Java SE 7开始 switch支持字符串String类型
- 同时case标签必须为字符串常量或字面量。
public class SwitchDemo01 {
public static void main(String[] args) {
char grade = 'C';
switch (grade){
case 'A':
System.out.println("优秀");
break; //可选
case 'B':
System.out.println("良好");
break; //可选
case 'C':
System.out.println("合格");
break; //可选
case 'D':
System.out.println("再接再厉");
break; //可选
case 'E':
System.out.println("挂科");
break; //可选
default:
System.out.println("未知等级");
}
}
}
4、循环结构
-
while循环
while(布尔表达式){
//循环内容
}
public class whileDemo01 {
public static void main(String[] args) {
//输出1-100
int i =0;
int sum = 0;
while(i<=100){
sum = sum+i;
i++;
}
System.out.println(sum);//5050
}
}
-
do....while循环
do{
//代码语句
}while(布尔表达式)
两个while的区别
-
while先判断后执行。dowhile是先执行后判断!
-
Do....while总是保证循环体会被至少执行一次
public class DoWhile {
public static void main(String[] args) {
int a = 0;
while (a<0){
System.out.println(a);
a++;
}
System.out.println("=================");
do{
System.out.println(a);
a++;
}while(a<0);
}
}
结果
=================
0
-
for循环★★★★★
for(初始化;布尔表达式;更新){
//代码语句
}public class forDemo04 {
public static void main(String[] args) {
//九九乘法表
for (int j = 1; j <= 9; j++) {
for (int i=1;i<=j;i++){
System.out.print(i+"*"+j+"="+(j*i)+"\t");
}
System.out.println();
}
}
}
5、break &continue
-
break在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句。(break语句也在switch语句中使用)
-
continue语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。
6、练习
三角形的打印
public class TestDemo06 {
public static void main(String[] args) {
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();
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现