Java流程控制——the next day

打印 上一主题 下一主题

主题 864|帖子 864|积分 2592

用户交互Scanner

Next和NextLine

Java5的新特性,带来了java.util.Scanner类,提供了人机交互的作用。我们可以通过它获取用户的输入
  1.  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的获取类型


Scanner类提供了多种方法,支持获取不同数据类型的数据。
例如:
  1.  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();
复制代码
练习:输入多个数字,求其总和与平均值;每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果。
  1.  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> }
复制代码
 
顺序结构


字面意思,除了特殊情况外,代码都是一行一行的执行,就像写字一样,一行一行写。
 
选择结构(IF语句)

单选择结构


小练习:判断输入的数值是否为hello


  • .equals 方法和 str=="hello" 的区别在于:

    • .equals 方法是对比数值是否相同;
    • str=="hello"是对比两个变量之间的内存地址块是否是同一块。

  1.  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> }
复制代码
双选择结构


小练习:考试分数大于等于60就是几个,小于60就不及格
  1.  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> }
复制代码
多选择结构


小练习:考试分数大于等于60就是几个,小于60就不及格,并且对及格成绩每10分进行定级,满分则显示满分。超出分值范围应当显示不合法。
  1.  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> }
复制代码
嵌套结构


小练习:输入一个数1~100,猜出这个数值是多少?

小提示:采用二分查找法。
switch多选择结构



  • case

    • 穿透关键词,可以根据switch上的变量,对比case后的数值,相同则执行case下的语句。

  • break

    • 中断语句,跳出循环或当前代码块。

拓展:反编译

通常我们Java文件在运行时,都需要编译为.class 文件才能执行。
IDEA 程序为我们提供了反编译的功能。将.class文件拖入IDEA程序中,即会自动进行反编译。

实际上我们看到的switch语句,是通过编写为这种方式,进行运行的。
 
循环结构

while循环


小练习:计算1+2....+100

[code] public class whileDemo1 {
     public static void main(String[] args) {
         int i=1;
         int sum=0;
         while (i
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

雁过留声

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表