#1.用户交互 Scanner
获取用户输入,提供人机交互。从属类为java.util.Scanner,通过Scanner获得用户输入。
基本语法:
Scanner s =new Scanner(system.in);
常通过next()方法进行空格判定输入结束,使用nextLine()方法进行回车判定输入结束
两种写法:
一、使用if条件判断:
Scanner scanner = new Scanner(system.in);
if(scanner.hasNext()){
String str=scanner.next();//输出结束后按空格结束输出
//String str=scanner.nextLine();输出结束后按回车结束输出
System.out.println("输出内容为"+str);
}
注:next()方法一定要得到有效输出才可以结束输入。对有效字符前的空白,next()方法会自动去掉,只有在输入有效字符后吗,输入空白就会结束输入,这样next()方法就永远得不到带空格的字符串。
二、不使用if判断是否输入:
Scanner scanner = scanner(system.in);
String str =scanner.nextLine();
System.out.println("输出内容为"+str);
注:nextLine()方法以Enter为结束符,按下Enter,前面的所有输入包括空格都会作为输入结果进入到scanner类中,因此nextLine()方法可以获得空白。
*在调用scanner类时,要记得在输入结束后,使用close()方法进行关闭键盘监听,以节省cpu开销,提升工作效率。
#2.java的结构
java的流程控制可以分为顺序结构、选择结构和循环结构,以及要注意break和continue的用法。
1.顺序结构
除非特殊注明,否制就按顺序执行,一句一句执行。语句和语句之间,框与框之间直接是按从上到下的顺序执行的,由若干个依次执行的处理步骤组成,是一个基础算法结构,任何算法都离不开它,如下图:
代码示例:
System.out.println("helllo");
System.out.println("world");
System.out.println("I ");
System.out.println("am");
System.out.println("little");
System.out.println("monster!");
2.选择结构
if单选择结构
判断一个东西是否可行,然后再执行,用if语句表示
原理图如下:
语法:
if(布尔表达式){
//如果布尔表达式为true将执行的语句
}
if的双选择结构
if后的布尔表达式,只有true和false两种情况:
原理图示如下:
示例代码如下:
if(布尔表达式){
//如果布尔表示的结果为true要进行的操作
}else{
//如果布尔表示的结果为false要进行的操作
}
if多选择结构
if后的布尔表达式,不仅有两个结果
原理图如下:
示例代码如下:
if(布尔表达式1){
//如果布尔表达式1的结果为true则执行
}else if(布尔表达式2){
//如果布尔表达式2的结果为true则执行
}
...
else{
//以上的所有表达式都为false则执行
}
switch case多选择结构
switch case语句通过判断switch中的量和case中的量是否相等实现选择,每一个case的值称为一个分支。现在switch支持byte,short、int、char和String类型变量,且case标签中必须为字符串常量和字面量。
示例代码如下:
switch(expression){
case value:
//语句
break;
case value:
//语句
break;
default:
//语句
}
3.循环结构、
循环结构分为while循环、do-while循环和for循环
while循环是一个肯定循环,它的布尔表达式只要是true就会一直循环。它至少执行0次,因为它是先判断再循环的执行顺序。
示例代码如下:
while(布尔表达式){
//循环内容
};
do-while循环是一个否定循环,它的布尔表达式只要是false就会一直循环。且它是一个至少执行一次的循环,因为它是先循环再判断的执行顺序。
·示例代码如下:
do{
//代码语句
}while(布尔表达式);
for循环,是一种通用结构,最有效、最灵活的循环结构。
示例代码如下:
for(初始化;布尔表达式;更新)
{
//循环语句
}
注:1.for(::)是一个死循环
2.更新时要注意迭代因子自增的前后
增强型for循环
示例代码如下
for(声明语句:表达式)
{
//代码句子
}
一般用于遍历数组和集合型for循环。
#3.break和continue的用法
break在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句。(break语句也在switch语 句中使用)
continue语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。
关于goto关键字
goto关键字很早就在程序设计语言中出现。尽管goto仍是Java的-一个保留字,但并未在语言中得到正式使用; Java没有goto。然而,在break和continue这两个关键字的身 上,我们仍然能看出一些goto的影 子---带标签的break和continue。
“标签"是指后面跟-一个冒号的标识符,例如: label:
对Java来说唯一用到标签的地方是在循环语句之前。而在循环之前设置标签的唯一理由是: 我们希望在其中嵌套另一个循环,由于break和continue关键字通常只中断当前循环, 但若随同标签使用,它们就会中断到存在标签的地方。