Java基础–流程控制
Scanner 对象
实现程序和人的交互,通过Scanner 类获取用户的输入。
语法:导包 import java.util.Scanner
基本语法:
Scanner s = new Scanner(System.in);
用法:
通过Scanner 类的next() 和 nextLine() 方法获取输入的字符串,使用hasNext() 与 hasNextLine()判断是否还有输入的数据。
public class ScannerDemo {
public static void main(String[] args) {
//创建一个扫描器对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);
//System.out.println("使用next方式接收:");
System.out.println("使用nextLine方式接收:");
//判断用户有没有输入字符串
// if (scanner.hasNext()) {
//next()以空格为分隔符和结束符,输入hello world ,结果:hello
// String str = scanner.next();
// System.out.println("输出内容为:"+str);
// }
if(scanner.hasNext()) {
//nextLine()以回车键Enter为结束符,输入hello world ,结果:hello world
String str = scanner.nextLine();
System.out.println("输出内容为:"+str);
}
//凡是属于IO流类,使用完要关闭
scanner.close();
}
}
简单的求和问题示例
public class SumDemo {
public static void main(String[] args) {
//对输入的数进行求和,求平均数,当输入不是数字时,输出结果
Scanner scanner = new Scanner(System.in);
double sum = 0.0; //定义和
double ave = 0.0; //定义平均值
int count = 0; //统计输入个数
System.out.println("请输入数据,当输入不为数字时,输出结果");
while (scanner.hasNextDouble()) { //判断输入是否为数字
double x = scanner.nextDouble(); //接收输入的数
sum = sum + x; //对当前输入进行累加求和
count++; //个数+1
}
System.out.println("所输入 "+count+" 个数的和为:"+sum);
//可在此处加一个判断,是否输入数据,没有的话,不能sun/count,此时count为0
System.out.println("所输入 "+count+" 个数的平均值为:"+sum/count);
scanner.close();
}
}
选择结构 if
Scanner scanner = new Scanner(System.in);
String str = scanner.next();
if(str.equals("hello")) { //判断输入的字符串是否为hello
System.out.println("true");
} else {
System.out.println("false");
}
scanner.close();
选择结构
示例:0-100奇数和偶数和
//0-100奇数和偶数和
public class ForDemo {
public static void main(String[] args) {
int oddSum = 0; //奇数和
int evenSum = 0;//偶数和
for (int i = 0; i <= 100; i++) {
if(i % 2 == 0) {
evenSum += i;
} else {
oddSum += i;
}
}
System.out.println("0-100奇数和为:"+oddSum);
System.out.println("0-100偶数和为:"+evenSum);
}
}
示例:while输出1-1000间能被5整除的数,每行输出3个
public static void main(String[] args) {
int i = 1;
while (i <= 1000) {
if(i % 5 == 0) { //判断能否被5整除
System.out.print(i + "\t");
}
if(i % 15 == 0) {//每隔三个换行输出
System.out.println();
}
i++;
}
}
示例:打印九九乘法表
public static void main(String[] args) {
//打印九九乘法表
//思路分析:首先打印第一列
//然后找规律
for(int i = 1; i <= 9; i++) {//一共9行
for(int j = 1; j <= i; j++) {//每行的乘法数
System.out.print(j +"*"+i+"="+(j*i)+"\t");
}
System.out.println();
}
}
break 和 continue
在循环语句中,break用于强行退出整个循环
continue用于终止某次的循环过程,继续进行下一次循环
public static void main(String[] args) {
//break,continut示例
int i = 1;
while (i < 10) {
if(i % 5 == 0) {//结束整个循环
break;
}
System.out.println(i); //结果 1,2,3,4,5
i++;
}
System.out.println("=======================");
i = 0;
while (i < 10) {
i++;
if(i % 5 == 0) {//跳出当前i为5的此次循环
continue;
}
System.out.println(i); //结果 1,2,3,4,6,7,8,9
}
}
示例:输出三角形
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();
}
}