目录
Scanner对象
一、字符串
二、数字
顺序结构、选择结构、循环结构
一、顺序结构
二、选择结构
三、选择结构
1、作用:通过 Scanner 类 来获取用户的输入
2、基本语法
Scanner s = new Scanner(System.in);
注意:next() 不接受空格,nextLine() 接受空格
hasNext() 与 hasNextLine() 并无太大差别
import java.util.Scanner.; //引入Scanner类 public class input01{ public static void main(String[] args){ // 创建一个扫描器对象,用于接受键盘输入 Scanner scanner = new Scanner(System.in); System.out.println("使用 next 方法接收"); //判断用户有没有输入字符串 if(scanner.hasnext()){ // 使用 next 方法接收 String str = scanner.next(); //不接受空格 System.out.println("输出的内容为:" + str); } //凡是属于IO流的类,如果停止使用要及时关闭,防止占用资源 scanner.close(); } }
import java.util.Scanner.; //引入Scanner类 public class input01{ public static void main(String[] args){ // 创建一个扫描器对象,用于接受键盘输入 Scanner scanner = new Scanner(System.in); System.out.println("使用 nextLine 方法接收"); //判断用户有没有输入字符串 if(scanner.hasNextLine()){ // 使用 next 方法接收 String str = scanner.nextLine(); //接受空格 System.out.println("输出的内容为:" + str); } //凡是属于IO流的类,如果停止使用要及时关闭,防止占用资源 scanner.close(); } }
1、单纯的输入输出
import java.util.Scanner; public class demo03 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); // 也可以进行初始化 int i; float f; System.out.println("请输入整数"); //判断输入的是否为整数 if(scanner.hasNextInt()){ i = scanner.nextInt(); System.out.println("您输入的整数是:" + i); } else System.out.println("您输入的不是整数!"); System.out.println("请输入小数"); //判断输入的是否为float型 if(scanner.hasNextFloat()){ f = scanner.nextFloat(); System.out.println("您输入的小数是:" + f); } else System.out.println("您输入的不是小数!"); scanner.close(); } }
2、输入 + 简单的计算
import java.util.Scanner; public class demo04 { // 输入多个数据,计算其和 与 平均数,以非数字作为输入结束符 public static void main(String[] args) { Scanner scanner = new Scanner(System.in); double sum = 0; // 记录 和 int num = 0; // 记录 个数 System.out.println("请输入多个数字计算 和 与 平均值"); //当输入为非字符时,循环结束 while(scanner.hasNextDouble()) { double x = scanner.nextDouble(); num++; //个数+1 sum = sum + x; //计算和 } System.out.println("对于输入的数字,其和为:" + sum); System.out.println("对于输入的数字,其平均值为:" + sum/num); scanner.close(); } }
一个个语句一次执行就是顺序结构
1、if 选择结构
(1)if 单选择结构
if( 布尔表达式 ){ // 若布尔表达式的值为true则执行该语句体 }
(2)if 双选择结构
if( 布尔表达式 ){ // 若布尔表达式的值为true则执行该语句体,不执行下一个 } else{ // 否则执行该语句体,而不执行上一个 }
(3)if 多选择结构
if( 布尔表达式1 ){ // 若布尔表达式1的值为true则执行该语句体 } else if( 布尔表达式2 ){ // 若布尔表达式2的值为true则执行该语句体 } ··· ··· else{ // 上述表达式都为false 时执行该语句体 }
(3)if 嵌套结构
if( 布尔表达式1 ){ // 若布尔表达式1的值为true则执行该语句体 if( 布尔表达式2 ){ // 若布尔表达式2的值为true则执行该语句体 } }
2、switch 多选择结构
switch( 变量 ){ case 值1 : // 语句 break; // 可选 case 值2 : // 语句 break; // 可选 ··· ··· default : // 可选 // 语句 }
注:
1、while 循环结构
while( 布尔表达式 ){ // 表达式成立时执行 }
例题:计算1+2+···+100
public class demo01 { public static void main(String[] args) { int i = 1; //表示加数 int sum = 0; //表示和 while( i <= 100 ){ sum = sum + i; i++; } System.out.println(sum); } }
2、do while循环
do{ // 语句 }while( 布尔表达式 )
注:do while先执行再判断
3、for循环
for( 初始化; 条件判断; 更新 ){ // 循环体 }
注:
例题:计算0-100之间的奇数和、偶数和
public class demo02 { public static void main(String[] args) { int oddSum = 0; int evenSum = 0; for (int i = 0; i < 100; i++) { if(i%2 == 0) { //判断是否为偶数 evenSum = evenSum + i; } else{ oddSum = oddSum + i; } } System.out.println("0-100的奇数和为:" + oddSum); System.out.println("0-100的偶数和为:" + evenSum); } }
例题:for循环输出1-1000之间能被5整除的数,并且每行输出3个数
public class demo03 { public static void main(String[] args) { for (int i = 1; i <= 1000; i++) { if(i%5 == 0) { // 能被5整除 System.out.print(i+"\t"); } if(i%(5*3) == 0) //控制一行内输出3个数 System.out.println(); } } }
例题:打印九九乘法表
public class demo04 { //打印九九乘法表 public static void main(String[] args) { for(int i = 1; i <= 9; i++){ // 控制行数 for(int j = 1; j <= i; j++){ // 控制列数 System.out.print(j + "*" + i + "=" + i*j + '\t'); } System.out.println(); } } }
例题:打印5行三角形
public class demo06 { // 打印5行三角形(以5*10的长方形为背景) public static void main(String[] args) { for (int i = 1; i <= 5; i++) { for(int j = 5; j >= i; j--) { //部分1,打印空格 System.out.print(""); } for(int j = 1; j <= i; j++) { //部分2,打印* System.out.print("*"); } for(int j = 1; j < i; j++) { //部分3,打印* System.out.print("*"); } System.out.println(); } } }
4、增强for循环
int[] num = {10, 20, 30, 40, 50}; //定义了一个数组 // 便利数组的元素 for(int i:num) System.out.println(i);
5、break 和 continue
(1)break:强行退出循环,不执行循环中剩余语句
(2)continue:终止某次循环,即跳出循环体中尚未执行的语句,接着进行下一次是否执行循环的判定
(3)goto:实际上是带标签的循环体,continue利用标签跳入到制定循环体中(不建议使用)
public class demo05 { // 打印101-150之间的所有质数 public static void main(String[] args) { 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+" "); } } }