> 文档中心 > 【Java—超详细,都可以看懂的逻辑控制与输入输出】

【Java—超详细,都可以看懂的逻辑控制与输入输出】

目录

  • 4 逻辑控制
    • 4.1 顺序结构
    • 4.2 循环结构
      • 4.2.1 while循环
      • 4.2.2 break 和 continue
      • 4.2.3 for循环
  • 5 输入输出
    • 5.1 输出到控制台
    • 5.2 系统输入

4 逻辑控制

Java中程序的逻辑控制语句

Java中的输入输出方式

4.1 顺序结构

顺序结构是什么?

是指单线程下按照代码的书写顺序一行一行向下执行

4.1.1 if…else分支

if...else

具体使用看下面(还要注意代码格式哦):

  1. 只有if语句
if(布尔表达式){    //满足条件的代码块}
  1. if…else分支
if(布尔表达式){    //满足条件的代码块}else{    //条件不满足时执行的代码}
  1. if …else if …else 多分支语句
if(布尔表达式){    //}else if(布尔表达式){    //}else if(布尔表达式){    //}else{    //不满足上述所有条件时的情况}

if语句 和 else if 语句是互斥的,不满足if的条件,跳到下一个else if 继续判断是否符合条件,都不符合,则走else语句。

分支语句的嵌套问题:在任意一个分支中,还可以嵌套分支

在编写代码时,需要注意:在使用多个if…else 语句时,且没有使用{},else默认匹配最接近的if语句

int a = 10;int b = 5;if(a == 10)    if(b != 5) System.out.println(b);else      System.out.println(a);

以上代码使用 if…else 时,没有使用{},此时else匹配的是 if(b != 5)

注意:在高级编程语言中,一个 ; 表示一行语句的结束

4.1.2 switch语句

switch语句:

switch(int|char|String|enum){ //只有这四种类型可以使用 case 内容1//满足内容1的语句     break; case 内容2//满足内容2的语句     break; case 内容3//满足内容3的语句     break;    default: //上述所有分支都不满足的情况 break;}

为什么每个case语句后都要加break?

case分支不加break时,代码会从第一个满足case分支开始,继续向下逐个执行,直到遇到break 或者把剩下的分支执行完毕。

4.2 循环结构

某一段代码会被重复执行很多次

4.2.1 while循环

while(循环的终止条件){ //条件为true时,代码就一直执行,条件为false时循环终止    //循环体代码}

使用while循环计算10!

public class Test {    public static void main(String[] args) { int ret = 1; //用于while判断 int sum = 1;  while(ret <= 10){     sum *= ret;     ret++; } System.out.println(sum);      }}

输出结果为:

3628800

4.2.2 break 和 continue

break: 表示终止当前的循环

continue: 表示跳过本次循环,继续下次循环

当我们需要一次跳出多个循环时,可以使用 return;直接结束当前方法的调用

或者break label 的使用

/**break label 的使用*/public class Test {    public static void main(String[] args) { int ret = 1; int sum = 1; label:while(ret <= 10){   //label 可以改变     while (ret < 2){  System.out.println("进入第二个循环");  break label;     }     ret++; } if(ret == 1){   //判断是否第一次进入内层循环就直接跳出所有循环     System.out.println("已经直接跳出循环"); }    }}

输出结果:

进入第二个循环已经直接跳出循环

4.2.3 for循环

for循环代码格式:

for(初始化条件;循环终止条件;更新循环变量){    //循环体代码}

for循环的三个条件都是可选的,可以都不写.

int i = 1; //初始化条件for(;;){    if(i > 10){   //循环终止条件 break;    }    //循环体代码    i++;  //更新循环变量}

5 输入输出

5.1 输出到控制台

基本语法

System.out.println();  //输出的数据自带换行System.out.print();    //输出的数据不带换行System.out.printf();   //格式化输出,和C语言的printf相似
System.out.println();  System.out.print();   

这两个print的()内部,可以放置任何参数,包括引用类型,功能可以说是非常强大

printf("%d", int变量);

这是格式化输出,变量类型有相对应的转换符 (%d 是整型的转换符)

5.2 系统输入

系统输入: Scanner类

要使用Scanner类,必须要产生Scanner 的对象

Scanner in = new Scanner(System.in);  //格式

我们在代码中来看它是如何具体使用的

import java.util.Scanner;public class Test {    public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入您的性别:"); String str = scanner.nextLine(); //nextLine会自动读入一行数据,要特别注意 System.out.println("请输入您的年龄:"); int age = scanner.nextInt(); System.out.println("年龄:" + age + "  性别:" + str);    }}

运行结果:

请输入您的性别:男请输入您的年龄:22年龄:22  性别:男

看这个例子:
那么我们要从键盘循环读入数字应该怎么实现呢?

在这里要用到scanner.hasNextInt

import java.util.Scanner;public class Test {    public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while(scanner.hasNextInt()){     int a = scanner.nextInt();     System.out.println(a); }    }}

代码功能:每输入一个整数,就输出一个整数;输入的不是整数时,代码结束。


各位大佬发现有错误时,留下评论,我会及时改正。大家一起进步😀😀😀