1.用户交互Scanner
- java.util.Scanner 是java5的新特征,我们可以通过Scanner类来获取用户的输入
基本语法
Scanner s = new Scanner(System.in)
通过Scanner类的next()与nextLine()获取用户输入的字符串,在读取前我们一般需要,使用hasNext()与hasNextLine()判断是否有输入的数据
- next()和nextline()方法的区别
// nextline方式
Scanner scanner = new Scanner(System.in);
System.out.println("使用nextLine方式接收:");
if (scanner.hasNextLine()){
String s = scanner.nextLine();
System.out.println("接收的数据"+s);
}
Scanner scanner = new Scanner(System.in);
//next() 方式接收
System.out.println("使用next方式接受:");
if (scanner.hasNext()){
String s = scanner.next();// 程序会等待用户输入完毕he
System.out.println("输出的内容为"+s);
scanner.close();
}
// 进阶
Scanner scanner = new Scanner(System.in);
System.out.println("接收int 类型数据了:");
if(scanner.hasNextInt()){
int i = scanner.nextInt();
System.out.println("接收到的整数是" + i);
}else{
System.out.println("接收到的不是整数");
}
scanner.close();
// 输入多个数字,求其总和与平均数,每输入一个数字用回车确认,通过输入非数字结束输入来输出执行结果
Scanner scanner = new Scanner(System.in);
double sum = 0;
int m = 0;
System.out.println("请输入数: ");
while(scanner.hasNextDouble()){
double x = scanner.nextDouble();
m ++;
sum += x;
}
System.out.println("输入的总和是"+sum);
System.out.println("输入的总次数是"+m);
scanner.close();
2.顺序结构
语句和语句之间,框与框之间从上到下的顺序执行,它是由若干个一次执行的处理步骤组成,它是任何一个算法都离不开的一种算法结构
3.选择结构
1) if 选择结构
if 多选择结构 if (){}else if {}()else{}
if (x < 60){
System.out.println("不及格");
}else if(x > 60 && x < 80){
System.out.println("良");
}else{
System.out.println("优秀");
}
2) switch
case 穿透(不使用break的场景)
char c = 'C';
switch (c){
case 'A':
System.out.println("良");
break;
case 'B':
System.out.println("优秀");
case 'C':
System.out.println("漂亮");
}
-
4.循环结构
1) while
int i = 10;
while(i > 5){
i --;
System.out.println(i);
}
2) do while
int i = 10;
do{
System.out.println(i);
i --;
}while (i>5);
3)for
```java package com.scanner;
public class Demo03 { public static void main(String[] args) { // 计算 0-100 奇数和偶数的和 // 用while 和for 循环 计算0-1000能被5整除的数,并且每行输出3个 // 打印 九九乘法表 int oddNum = 0; int evenNum = 0; for (int i = 0; i < 100; i++) { if (i % 2 != 0) { oddNum += i; } else { evenNum += i; } } System.out.println(oddNum); System.out.println(evenNum);
for (int i = 0; i <= 1000; i++) {
if (i % 5 == 0) {
System.out.print(i + "\t");
}
if (i % (5 * 3) == 0) {
System.out.println();
}
}
for (int i = 1; i < 10; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(j + "*" + i + "=" + (j * i) + "\t");
}
System.out.println();
}
}
}
<a name="npG0Y"></a>
#### 4) 增强for循环
```java
package com.scanner;
public class Demo04 {
public static void main(String[] args) {
int[] numbers = {10,20,40,50,21};
for(int x: numbers){
System.out.println(x);
}
}
}
5) 参数省略
package com.scanner;
public class Demo04 {
public static void main(String[] args) {
for (; i < 5; i++) {
System.out.println(i);
}
}
}
// 1.第一个参数必须要定义,不然编译失败
// 2.第二个参数可以不写,因为没用终止条件所以无限循环下去
// 3.第三个也可以不写,也是无限循环,但是输出的永远是零
5.break & contiune
// break
int i = 0;
while (i < 100){
i ++;
System.out.println(i);
if (i == 10){
break;
}
}
System.out.println("执行结束!");
//continue
int i = 0;
while (i < 15){
i ++;
System.out.println(i);
if (i == 10){
continue;
}
System.out.println("执行 " + i);
}
System.out.println("执行结束!");
6.练习
package com.scanner;
public class Demo05 {
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();
}
}
}
//************************************************************
*
***
*****
*******
*********
进程已结束,退出代码为 0