Java流程控制——the next day
用户交互ScannerNext和NextLine
Java5的新特性,带来了java.util.Scanner类,提供了人机交互的作用。我们可以通过它获取用户的输入。
public class Demo2 {<br> public static void main(String[] args) {<br> Scanner s = new Scanner(System.in);//创建一个扫描器对象,用于接收键盘数据<br> s.next();//获取数据<br> s.nextLine();//获取多行数据<br> s.hasNext();//判断还是否有下一个数据<br> s.hasNextLine();//判断还是否有下一行数据<br> }<br> }
[*]next():
[*]一定要读取到字符才能结束输入。(才能使程序继续运行)
[*]不会记录空白,并且以空格为结束符。
[*]不能得到带有空格的字符串。
[*]nextLine():
[*]以Enter为结束符。
[*]可以获得空白。
Scanner的获取类型
https://images.cnblogs.com/cnblogs_com/blogs/793527/galleries/2317985/o_230613093433_image-20230605180534853.png
Scanner类提供了多种方法,支持获取不同数据类型的数据。
例如:
Scanner s = new Scanner(System.in);<br> int a = s.nextInt();//获取一个int类型,如果不是int型则弹出错误<br> s.hasNextInt();//判断输入的是否为int类型,返回布尔数值。<br> System.out.println(a);<br> s.close();练习:输入多个数字,求其总和与平均值;每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果。
public class Demo02_practice {<br> //练习:输入多个数字,求其总和与平均值;每输入一个数字用回车确认,<br> // 通过输入非数字来结束输入并输出执行结果。<br> public static void main(String[] args) {<br> //创建扫描器<br> Scanner scanner = new Scanner(System.in);<br> //创建接收变量,double类型记得要加上L,不然会出现数据错误问题<br> double sum = 0L;<br> int count=0;<br> //判断是否还有double数值输入,非double则跳出循环<br> while (scanner.hasNextDouble()){<br> sum += scanner.nextDouble();<br> count++;<br> }<br> System.out.println("总数为:"+sum);<br> System.out.println("平均数为:"+sum/count);<br> //回收扫描器<br> scanner.close();<br> }<br> }
顺序结构
https://images.cnblogs.com/cnblogs_com/blogs/793527/galleries/2317985/o_230613093423_image-20230607091451333.png
字面意思,除了特殊情况外,代码都是一行一行的执行,就像写字一样,一行一行写。
选择结构(IF语句)
单选择结构
https://images.cnblogs.com/cnblogs_com/blogs/793527/galleries/2317985/o_230613093455_image-20230607092249194.png
小练习:判断输入的数值是否为hello
[*].equals 方法和 str=="hello" 的区别在于:
[*].equals 方法是对比数值是否相同;
[*]str=="hello"是对比两个变量之间的内存地址块是否是同一块。
public class IFDemo01 {<br> public static void main(String[] args) {<br> Scanner scanner = new Scanner(System.in);<br> System.out.println("请输入内容:");<br> String str = scanner.nextLine();<br> if (str.equals("Hello")){<br> System.out.println(str);<br> }<br> System.out.println("输入的值不是hello");<br> scanner.close();<br> }<br> }双选择结构
https://images.cnblogs.com/cnblogs_com/blogs/793527/galleries/2317985/o_230613093512_image-20230608102220265.png
小练习:考试分数大于等于60就是几个,小于60就不及格
public class IFDemo2 {<br> public static void main(String[] args) {<br> //考试分数大于等于60就是几个,小于60就不及格<br> //解决方案A<br> Scanner scanner = new Scanner(System.in);<br> int score = scanner.nextInt();<br> scanner.close();<br> if (score>=60){<br> System.out.println("及格");<br> }else {<br> System.out.println("不及格");<br> }<br> //解决方案B:三元运算符<br> String str = score>=60?"及格":"不及格";<br> System.out.println(str);<br> }<br> }多选择结构
https://images.cnblogs.com/cnblogs_com/blogs/793527/galleries/2317985/o_230613093519_image-20230608102434903.png
小练习:考试分数大于等于60就是几个,小于60就不及格,并且对及格成绩每10分进行定级,满分则显示满分。超出分值范围应当显示不合法。
public class IFDemo03 {<br> public static void main(String[] args) {<br> //考试分数大于等于60就是几个,小于60就不及格<br> Scanner scanner = new Scanner(System.in);<br> int score = scanner.nextInt();<br> scanner.close();<br> if (score == 100){<br> System.out.println("满分");<br> }else if (score<100 && score>=90){<br> System.out.println("A级");<br> }else if (score<90 && score>=80){<br> System.out.println("B级");<br> }else if (score<80 && score>=70){<br> System.out.println("C级");<br> }else if (score<70 && score>=60){<br> System.out.println("D级");<br> }else if (score<60 && score>=0){<br> System.out.println("不及格");<br> }else {<br> System.out.println("成绩不合法");<br> }<br> }<br> }嵌套结构
https://images.cnblogs.com/cnblogs_com/blogs/793527/galleries/2317985/o_230613093543_image-20230608103638077.png
小练习:输入一个数1~100,猜出这个数值是多少?
小提示:采用二分查找法。
switch多选择结构
https://images.cnblogs.com/cnblogs_com/blogs/793527/galleries/2317985/o_230613093554_image-20230608183546908.png
[*]case
[*]穿透关键词,可以根据switch上的变量,对比case后的数值,相同则执行case下的语句。
[*]break
[*]中断语句,跳出循环或当前代码块。
拓展:反编译
通常我们Java文件在运行时,都需要编译为.class 文件才能执行。
IDEA 程序为我们提供了反编译的功能。将.class文件拖入IDEA程序中,即会自动进行反编译。
https://images.cnblogs.com/cnblogs_com/blogs/793527/galleries/2317985/o_230613093603_image-20230608191052402.png
实际上我们看到的switch语句,是通过编写为这种方式,进行运行的。
循环结构
while循环
https://images.cnblogs.com/cnblogs_com/blogs/793527/galleries/2317985/o_230613093612_image-20230608191435978.png
小练习:计算1+2....+100
public class whileDemo1 {
public static void main(String[] args) {
int i=1;
int sum=0;
while (i
页:
[1]