雁过留声 发表于 2023-6-13 18:20:34

Java流程控制——the next day

用户交互Scanner

Next和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]
查看完整版本: Java流程控制——the next day