1、用户交互Scanner
java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的 输入。
Scanner s = new Scanner(System.in); //创建一个Scanner对象
接收字符串
并通过 Scanner 类的 next() 与 nextLine() 方法获取输入的字符 串,在读取前我们一般需要 使用 hasNext() 与 hasNextLine() 判断是否还有输入的数据。
Scanner scanner = new Scanner(System.in); //创建一个sanner对象
System.out.println("请输入:");
if (scanner.hasNextline()){//判断输入的字符,此处判断语句依据接收到额类型变化
//String str = scanner.next(); //next方式接收字符串
String str2 = scan.nextLine(); //nextLine方式接收字符串
System.out.println("输入内容:"+str); }
scanner.close();
两者区别:
next():
- 一定要读取到有效字符后才可以结束输入。
- 对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
- 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
- next() 不能得到带有空格的字符串。
nextLine() :
- 以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
- 可以获得空白。
接收数字
如果要输入 int 或 flfloat 类型的数据,在 Scanner 类中也有支持,但是在输入之前最好先使用
hasNextXxx() 方法进行验证,再使用 nextXxx() 来读取:
输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字
来结束输入并输出执行结果:
Scanner scanner = new Scanner(System.in);
double sum = 0;
int m = 0;
System.out.println("请输入一串数字,以回车分隔,输入任意字符为结束符");
while (scanner.hasNextDouble()){
double x = scanner.nextDouble();
m += 1;
sum+=x;
System.out.println("输入数字:"+x);
}
System.out.println("和是:"+sum);
System.out.println("平均数是;"+sum/m);
scanner.close();
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 执行代码
}
switch 多选择结构
没有break,会造成case穿透
( 从 Java SE 7 开始, switch 支持 字符串 String 类型 )
switch ( expression ){
case value :
//语句
break ; // 可选
case value :
//语句
break ; // 可选
//你可以有任意数量的case 语句
default : // 可选
//语句
}
4、循环结构
- while 循环
- do…while 循环
- for 循环
do…while 循环和 while 循环相似,不同的是, do…while 循环至少会执行一次。
for循环
for ( int i = 1 ; i <= 9 ; i ++ ) { }
增强for循环
1、增强for 循环遍历输出数组元素
int [] numbers = { 10 , 20 , 30 , 40 , 50 };
for ( int x : numbers ){
System . out . print ( x );
System . out . print ( "," );
}
5、break and continue
break 关键字
break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块。
break 跳出最里层的循环,并且继续执行该循环下面的语句。
continue 关键字
continue 适用于任何循环控制结构中。作用跳出一次循环。
(可以使用标签结合continue实现goto功能)
int count = 0 ;
outer : for ( int i = 101 ; i < 150 ; i ++ ) {
for ( int j = 2 ; j < i / 2 ; j ++ ) {
if ( i % j == 0 )
continue outer ;
}
System . out . print ( i + " " );
}