Java流程控制——the next day

这篇具有很好参考价值的文章主要介绍了Java流程控制——the next day。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

用户交互Scanner

Next和NextLine

Java5的新特性,带来了java.util.Scanner类,提供了人机交互的作用。我们可以通过它获取用户的输入

 public class Demo2 {
     public static void main(String[] args) {
         Scanner s = new Scanner(System.in);//创建一个扫描器对象,用于接收键盘数据
         s.next();//获取数据
         s.nextLine();//获取多行数据
         s.hasNext();//判断还是否有下一个数据
         s.hasNextLine();//判断还是否有下一行数据
    }
 }
  • next():

    • 一定要读取到字符才能结束输入。(才能使程序继续运行)

    • 不会记录空白,并且以空格为结束符。

    • 不能得到带有空格的字符串。

  • nextLine():

    • 以Enter为结束符。

    • 可以获得空白。

Scanner的获取类型

Java流程控制——the next day

Scanner类提供了多种方法,支持获取不同数据类型的数据。

例如:

 Scanner s = new Scanner(System.in);
 int a = s.nextInt();//获取一个int类型,如果不是int型则弹出错误
 s.hasNextInt();//判断输入的是否为int类型,返回布尔数值。
 System.out.println(a);
 s.close();

练习:输入多个数字,求其总和与平均值;每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果。

 public class Demo02_practice {
     //练习:输入多个数字,求其总和与平均值;每输入一个数字用回车确认,
     // 通过输入非数字来结束输入并输出执行结果。
     public static void main(String[] args) {
         //创建扫描器
         Scanner scanner = new Scanner(System.in);
         //创建接收变量,double类型记得要加上L,不然会出现数据错误问题
         double sum = 0L;
         int count=0;
         //判断是否还有double数值输入,非double则跳出循环
         while (scanner.hasNextDouble()){
             sum += scanner.nextDouble();
             count++;
        }
         System.out.println("总数为:"+sum);
         System.out.println("平均数为:"+sum/count);
         //回收扫描器
         scanner.close();
    }
 }

 文章来源地址https://www.toymoban.com/news/detail-481215.html

顺序结构

Java流程控制——the next day

字面意思,除了特殊情况外,代码都是一行一行的执行,就像写字一样,一行一行写。

 

选择结构(IF语句)

单选择结构

Java流程控制——the next day

小练习:判断输入的数值是否为hello
  • .equals 方法和 str=="hello" 的区别在于:

    • .equals 方法是对比数值是否相同;

    • str=="hello"是对比两个变量之间的内存地址块是否是同一块。

 public class IFDemo01 {
     public static void main(String[] args) {
         Scanner scanner = new Scanner(System.in);
         System.out.println("请输入内容:");
         String str = scanner.nextLine();
         if (str.equals("Hello")){
             System.out.println(str);
        }
         System.out.println("输入的值不是hello");
         scanner.close();
    }
 }

双选择结构

Java流程控制——the next day

小练习:考试分数大于等于60就是几个,小于60就不及格
 public class IFDemo2 {
     public static void main(String[] args) {
         //考试分数大于等于60就是几个,小于60就不及格
         //解决方案A
         Scanner scanner = new Scanner(System.in);
         int score = scanner.nextInt();
         scanner.close();
         if (score>=60){
             System.out.println("及格");
        }else {
             System.out.println("不及格");
        }
         //解决方案B:三元运算符
         String str = score>=60?"及格":"不及格";
         System.out.println(str);
    }
 }

多选择结构

Java流程控制——the next day

小练习:考试分数大于等于60就是几个,小于60就不及格,并且对及格成绩每10分进行定级,满分则显示满分。超出分值范围应当显示不合法。
 public class IFDemo03 {
     public static void main(String[] args) {
         //考试分数大于等于60就是几个,小于60就不及格
         Scanner scanner = new Scanner(System.in);
         int score = scanner.nextInt();
         scanner.close();
         if (score == 100){
             System.out.println("满分");
        }else if (score<100 && score>=90){
             System.out.println("A级");
        }else if (score<90 && score>=80){
             System.out.println("B级");
        }else if (score<80 && score>=70){
             System.out.println("C级");
        }else if (score<70 && score>=60){
             System.out.println("D级");
        }else if (score<60 && score>=0){
             System.out.println("不及格");
        }else {
             System.out.println("成绩不合法");
        }
    }
 }

嵌套结构

Java流程控制——the next day

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

小提示:采用二分查找法。

switch多选择结构

Java流程控制——the next day

  • case

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

  • break

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

拓展:反编译

通常我们Java文件在运行时,都需要编译为.class 文件才能执行。

IDEA 程序为我们提供了反编译的功能。将.class文件拖入IDEA程序中,即会自动进行反编译。

Java流程控制——the next day

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

 

循环结构

while循环

Java流程控制——the next day

小练习:计算1+2....+100
 public class whileDemo1 {
     public static void main(String[] args) {
         int i=1;
         int sum=0;
         while (i<=100){
             sum+=i;
             i++;
        }
         System.out.println(sum);
    }
 }

do……while循环

Java流程控制——the next day

小练习:计算1+2....+100,观察do..while 和whlie的区别
 public class WhileDemo02 {
     public static void main(String[] args) {
         int i=1;
         int sum=0;
         do{
             sum+=i;
             i++;
        } while (i<=100);
         System.out.println(sum);
    }
 }

 

for循环(经常使用,十分重要)

Java流程控制——the next day

是最有效,最灵活的循环结构。

关于for循环有以下几点说明:

  • 最先执行初始化步骤。

  • 可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。

  • 之后,检测布尔值,如果是true则运行循环。false则循环终止。

  • 执行一次循环后,更新循环控制变量(迭代因子控制循环变量的增减)

//FOR语句的死循环写法
for(;;){

}
//FOR语句的是三个部分都可以是空语句。
练习1:计算0到100之间的奇数和偶数的和
public class ForDemo01 {
public static void main(String[] args) {
int oddSum = 0;
int evenSum = 0;
//快捷键100.for
for (int i = 1; i <= 100; i++) {
if (i % 2 == 0) {
oddSum += i;
} else {
evenSum += i;
}
}
System.out.println("奇数和为:" + oddSum);
System.out.println("偶数和为:" + evenSum);
}
}
练习2:用while或for循环输出1-1000之间能被5整除的数,并且每行输出3个
public class ForDemo02 {
public static void main(String[] args) {
int j = 0;
for (int i = 1; i <= 1000; i++) {
if (i % 5 == 0) {
System.out.print(i + "\t");
j++;
if (j % 3 == 0 && j != 0) {
System.out.println();
}
}
}
}
}
练习3:打印九九乘法表
public class ForDemo03 {
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();
}
}
}

增强型for循环

Java流程控制——the next day

 

public class ForDemo04 {
public static void main(String[] args) {
//定义数组的两种方式:不初始化,但是指定数组范围;
int[] number=new int[5];
//初始化数组
int[] number2={12,213,31,1213,14,5,54,23};
for (int i : number2) {//遍历数组
System.out.println(i);
}
}
}

break & continue

Java流程控制——the next day

简而言之:

  • break:跳出循环体;

  • continue:跳过单次循环;

    • 功能2:跳到指定标签的循环体如下;(不建议使用)

outer:for (int i = 11; i < 15; i++) {
for (int j = 2; j < i / 2; j++) {
if (i % j == 0) {
continue outer;
}
}
}

 

练习

题目:输入一个数值,根据这个数值打印一个等边三角形

Java流程控制——the next day

代码:

public class TestDemo01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
if (scanner.hasNextInt()) {
int n = scanner.nextInt();
for (int j = n; j > 0; j--) {
for (int i = j; i > 0; i--) {
System.out.print(" ");
}
for (int i = 0; i < (n - j) * 2 + 1; i++) {
System.out.print("*");
}
System.out.println();
}
} else {
System.out.println("输入信息有误,请输入整数");
}
//解题思路
//当N=5时,要输出1个*;以此类推得出如下思路;最后总结公式:(n-j)*2+1;可以解这个公式
// 5---1
// 4---3
// 3---5
// 2---7
// 1---9
}
}

输出如下:

Java流程控制——the next day

这种类型的算法题,对加深JavaSE代码的理解非常有帮助;有能力的小伙伴可以进阶的研究一下贪心算法中的背包问题。是一到经典的动态规划类型题目。

 

 ### 部分截图取自,B站UP:遇见狂神说;菜鸟教程

 

到了这里,关于Java流程控制——the next day的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 计算机网络学习The next day

     在计算机网络first day中,我们了解了计算机网络这个科目要学习什么,因特网的概述,三种信息交换方式等,在今天,我们就来一起学习一下计算机网络的定义和分类,以及计算机网络中常见的几个性能指标。 废话不多说,直击正题 计算机网络的定义  在计算机发展的不

    2024年01月22日
    浏览(39)
  • Java中读取用户输入的是谁?Scanner类

    我们在初学 Java 编程的时候,总是感觉很枯燥乏味,想着做点可以交互的小系统,可以让用户自由输入,系统可以接收做出反映。这就要介绍一下 Java 中的 Scanner 类了。 Java 中的 Scanner 类是一个用于读取用户输入的工具类。它可以从控制台、文件、字符串等多种来源读取数据

    2024年02月07日
    浏览(47)
  • 第03章_流程控制语句(顺序结构,分支语句,循环语句,break,continue,Scanner,如何获取一个随机数)

    流程控制语句是用来控制程序中各 语句执行顺序 的语句,可以把语句组合成能 完成一定功能 的小逻辑模块。 程序设计中规定的 三种 流程结构,即: 顺序结构 程序从上到下逐行地执行,中间没有任何判断和跳转。 分支结构 根据条件,选择性地执行某段代码。 有 if…els

    2024年01月22日
    浏览(55)
  • gin 中间件流程控制:Next()、 Abort()

    源码注释: Next 应该只在中间件内部使用。它执行调用处理程序内部链中的挂起处理程序。 通俗的说,就是中间件放行,当一个中间件代码执行到 Next() ,会先执行它之后的函数,最后再来执行完本函数。 eg: 如果其中一个中间件响应了c.Abort(),后续中间件将不再执行,直接按

    2024年02月15日
    浏览(58)
  • day2-JS基础&流程控制

    自增自减运算符 1、基本使用 内置提供 ++、--运算符 是用于将变量本身进行加1或者减1操作 // 1、基本使用 var i = 10; i++;//等价于语句 i+=1 console.log(i);//11 var m = 10; m--; console.log(m) 2、前置与后置的区别 // 2、前置与后置的区别 // 可以将++、--运算符号 设置到变量的前面或者后面

    2024年02月05日
    浏览(44)
  • 【100天精通python】Day5:python 基本语句,流程控制语句

    目录 1. 条件语句 1.1 if语句 1.2 if-else语句  1.3  if-elif-else语句 2 循环语句 2.1 for循环

    2024年02月17日
    浏览(49)
  • [Day 3 of 17]Building a document scanner in OpenCV

    a computer vision-powered document scanner 计算机视觉驱动的文档扫描仪,三个步骤: 边缘检测edges 通过边缘,找到代表待扫描纸张的轮廓contour 应用透视转换(a perspective transform)获得文档自上而下的视图 How to Build a Kick-Ass Mobile Document Scanner 如何构建Kick Ass移动文档扫描仪 step1:edge dete

    2024年02月11日
    浏览(37)
  • IDEA中单元测试使用Scanner控制台无法输入

    今天使用IDEA,Junit使用Scanner控制台无法输入,我以为是代码的问题。于是把单元测试换成了main函数,发现控制台可以输入。那么如何解决这个问题呢? 目录 idea控制台不能输入 解决 IDEA控制台中不能输入数据 idea控制台不能输入 下面是一个简单的测试代码: 在该单元测试运

    2024年04月26日
    浏览(42)
  • 【100天精通python】Day5:python基础_python 基本语句,流程控制语句

    目录 1. 条件语句 1.1 if语句 1.2 if-else语句  1.3  if-elif-else语句 2 循环语句 2.1 for循环

    2024年02月15日
    浏览(53)
  • 深入探索Java GUI编程:构建交互丰富的用户界面

    Java GUI编程是构建交互式用户界面的关键技术之一。本文将深入研究Java GUI编程的基本概念和原理,介绍Swing和JavaFX两种主流的GUI框架,并通过实例演示它们的使用。读者将学习如何创建各种组件、布局管理、事件处理以及美化界面,从而构建出功能丰富、美观而又用户友好的

    2024年02月16日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包