java流程控制
用户交互Scanner
我们可以通过Scanner类来获取用户的输入
基本语法:
Scanner s=new Scanner(System.in);
通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前一般需要使用hasNext()与hasNextLine()判断是否还有输入数据
1.next():
-
一定要读取到有效字符后才可以结束输入。
-
对于输入有效字符之前遇到的空白,next()方法会自动将其去掉。
-
只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
-
next()不能得到带有空格的字符串
2.nextLine():
-
以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符。
-
可以获得空白。
3.代码示例以及结果:
package c1;
import java.util.Scanner;
public class Demo1 {
public static void main(String[] args) {
//创建一个扫描器对象,用于接收键盘数据
Scanner scanner=new Scanner(System.in);
System.out.println("使用next方法接收:");
//判断用户有没有输入字符串
if(scanner.hasNext()){//简写了scanner.hasNext()==true
//用next方式进行接收
String str=scanner.next();
System.out.println("输出的内容为"+str);
}
//凡是属于IO流的类如果吧关闭会一直占用资源,要养成良好习惯用完就关掉
scanner.close();
}
}
//输入为:hello world
//输出为:hello
package c1;
import java.util.Scanner;
public class Demo2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);//alt+enter
System.out.println("使用nextLine方式接收:");
if(scanner.hasNextLine()){//去掉if判断语句也是可以的
String str=scanner.nextLine();
System.out.println("输出的内容为:"+str);
}
scanner.close();
}
}
//输入为:hello world
//输出为:hello world
顺序结构
选择结构
-
单层判断
if(布尔表达式){
}
-
双层
if(布尔表达式){
}else{
}
-
多层
if(布尔表达式){
}elseif(布尔表达式){
}
-
switch case语句判断一个变量与一系列值中的某个值是否相等,每一个值称为分支。
-
switch语句的变量类型:(case标签必须为字符串常量或字面量)
byte,short,int char,String
-
在switch中case具有穿透性,故需要用break来进行一个判断的停止。
//case穿透 switch匹配一个具体的值
char grade='C';
switch (grade){
case'A':
System.out.println("优秀");
break;//可选
-
循环结构
-
while循环
结构:
while(布尔表达式){
//循环内容
} -
do....while循环
先执行再判断,至少执行一遍
-
for循环
for(初始化值;条件判断;迭代)
-
增强for循环:
for(声明语句:表达式){
//代码句子
}
int[] numbers={10,11,12,13,14,};//定义了一个数组
for(int i=0;i<5;i++){
System.out.println(numbers[i]);//i表示数组下标值
}
System.out.println("==============");
//遍历数组元素
for(int x:numbers){
System.out.println(x);
//两个for语句都是一样的功能
break&continue
-
break在任何循环语句的主体部分,均可以用break控制循环的流程,break用于强行退出循环,结束全部循环,不可以执行循环中剩下的语句
-
continue语句用在循环语句体中,用于终止某次循环过程,即跳过循环中尚未执行的语句,结束当前循环,可以执行下一次循环的语句。

浙公网安备 33010602011771号