通过Scanner类来获取用户的输入
next()与nextLine()的方法来获取输入的字符串
hasNext()与hasNextLine()判断是否还有输入的数据
next():
一定要读取到字符才可与结束输入
2. 以空白为结束符 3. next()不能的得到带有空白的字符串
nextLine:
以回车为结束符;返回的是输入回车前的所有字符
可以获得空白的字符串
package scanner; import java.util.Scanner; public class Demo1 { 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(); } }
package scanner; import java.util.Scanner; public class Demo2 { public static void main(String[] args) { //接受键盘输入数据 Scanner scanner = new Scanner(System.in); System.out.println("使用nextLine方式接收"); //判断是否输入 if (scanner.hasNextLine()) { //使用nextLine的方式来接受 String str = scanner.nextLine();//程序会等待输入完毕 System.out.println("输出内容为" + str); } //对于IO流 用了要即使关闭,占资源 scanner.close(); } }
其他用法
package scanner; import java.util.Scanner; public class Demo3 { public static void main(String[] args) { //接受数据 Scanner scanner = new Scanner(System.in); //定义初始值 int i = 0; float o = 0.0F; System.out.println("请输入整数");//提示语 //判断是否输入的整数 后面加了int if(scanner.hasNextInt()) { i = scanner.nextInt();//等待输入整数 System.out.println("整数数据:" + i); }else {//输入的不是整数则输出这个 System.out.println("你输入的不是整数!"); } System.out.println("请输入小数数据");//提示语 //判断是否输入的是小数 if(scanner.hasNextFloat()) { o = scanner.nextFloat();//等待输入 System.out.println("小数数据:" + o);//正确情况 }else{//错误情况 System.out.println("你输入的不是小数数据"); } //用的IO流,用完关闭 scanner.close(); } }
package scanner; import java.util.Scanner; public class Demo4 { public static void main(String[] args) { //引入类用于接受数据 Scanner a = new Scanner(System.in); //定于初始值 double b = 0; int c = 0; System.out.println("请输入数据");//提示语 //循环语句输入的不是数字则会结束 因后面我加了double while(a.hasNextDouble()){ double d = a.nextDouble();//等待输入 c = c+1;//每输入一次都会循环一次就会+1 b = b+d;//同理 System.out.println("你输入了第"+c+"数,"+"当前结果sum="+b);//每输入完用于提示 } //最后直到我结束上面的循环才会输入这个 System.out.println(c+"个数的和为"+b); System.out.println(c+"个数的平均值"+(b/c)); //用IO流,最后要关闭 a.close(); } }
依次执行 基本算法结构
单选择结构 equals :判断字符串是否相等
package struct; import java.util.Scanner; public class Ifemo1 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入输入内容"); String s = sc.nextLine(); //equals:判断字符串是否相同 if(s.equals("Hello")){ System.out.println(s); } System.out.println("End"); sc.close(); } }
双选择结构
package struct; import java.util.Scanner; public class IfDemo2 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入成绩"); int score = scanner.nextInt(); if(score>=60){ System.out.println("及格"); }else{ System.out.println("不及格"); } scanner.close(); } }
多选择结构
package struct; import java.util.Scanner; public class IfDemo4 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("输入"); int a = scanner.nextInt(); if (a == 100){ System.out.println("满分"); }else if (a >= 90 && a <100){ System.out.println("优秀"); }else if (a >=0 && a < 90){ System.out.println("垃圾"); }else{ System.out.println("不合法"); } scanner.close(); } }
基本结构:
匹配一个具体的值
case 穿透现象
break 打断case穿透
package struct; public class SwitchDemo1 { public static void main(String[] args) { String name = "薛"; //switch:匹配一个具体的值 switch(name){ //case:定义内容 但具有穿透行性 case"张": //如果值和内容相等,则输出 System.out.println("张"); //break:打断case的穿透 break; case"薛": System.out.println("薛"); break; //如果都没有,则 default: System.out.println("无此人"); } } }
基本结构 while(布尔表达式){ }
只要布尔吧表达式为ture,循环就会一直执行
避免死循环
先判断后执行
package struct; public class WhileDemo1 { public static void main(String[] args) { //定义起始值 int q = 0; //循环到50停止 while (q<50){ q = ++q; //每次循环到最后输出值 System.out.println(q); } } }
package struct; public class WhileDemo2 { public static void main(String[] args) { //1+到100的和 //定义初始值 int a = 0; int sum = 0; //循环a到100停止 while(a<=100){ sum = sum+a; a++; } System.out.println(sum); } }
基本结构:do{
代码语句
}while(布尔表达式);
先执行后判断
package struct; public class DoWhileDemo1 { public static void main(String[] args) { //定义起始值 int a = 1; //while 先判断后执行 while(a<1){ System.out.println(a); a++; } System.out.println("================================="); //do while 先执行后判断 do{ System.out.println(a); a++; }while(a<1); } }
基本结构:
package struct; public class ForDemo1 { public static void main(String[] args) { //初始值——条件判断——更新 for (int i = 0; i < 100; i++) { System.out.println(i); } } }
主要用于数组
基本结构
package struct; public class ForDemo5 { public static void main(String[] args) { //定义数组 int[] numbers = {10,20,30,40,50}; for (int a = 0; a < 5; a++ ){ System.out.println(numbers[a]); } System.out.println("================="); //遍历数值元素 for(int x:numbers){ System.out.println(x); } } }
break:强制退出循环
continua:终止某次循环
package struct; public class BrerakDemo1 { public static void main(String[] args) { //break 强制停止并退出 int a = 0; while(a<50){ a++; if(a == 20){ break; } System.out.println(a); } } }
package struct; public class ContinueDemo { public static void main(String[] args) { //continue 终止某一次循环 int a = 0; while(a<50){ a++; if (a%10==0){ System.out.println(); continue; } System.out.print(a); } } }