Java学习笔记3-流程控制

输入&输出

输入

从控制台获取输入,需要导入Java中的java.util.Scanner类,通过读取对应类型来获取不同类型输入;

package note3;

/**
 * Created with IntelliJ IDEA.
 * Version : 1.0
 * Author : cunyu
 * Email : [email protected]
 * Website : https://cunyu1943.github.io
 * Date : 2019/12/18 17:30
 * Project : JavaLeaning
 * Package : note3
 * Class : InputAndOutput
 * Desc : Java笔记3
 */

import java.util.Scanner;

public class InputAndOutput {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        //        输入整行并获取字符串
        System.out.println("Input the name");
        String strName = input.nextLine();

        //        输入整行并获取整数
        System.out.println("Input the id");
        int intId = input.nextInt();

        System.out.println("Name is : " + strName);
        System.out.println("Id is : " + intId);
    }
}

输出

  • 普通输出

    通过System.out.print即可不换行输出,而System.out.println则是输出并换行;

  • 格式化输出

    通过占位符,将数组类型“格式化”为指定字符串,常用占位符如下表,注意%表示占位符,要输出%则需要使用两个连续%%

    占位符 说明
    %d 格式化输出整数
    %x 格式化输出十六进制整数
    %f 格式化输出浮点数
    %e 格式化输出科学计数法表示的浮点数
    %s 格式化字符串

if判断

  • 基本语法
if (condition)
{
	// do something if condition is true...
	...
}
if(condition)
{
	// do something if condition is true...
	...
} else
{
	// do something if condition is false...
}
  • 引用类型和引用类型的变量内容相等判断

    • ==:用于判断引用类型是否相等,用于判断两个对象是否指向同一对象;
    • equals():用于判断引用类型的变量内容是否相等;
    public class Main()
    {
        public static void main(String[] args)
        {
        	String s1 = "hello";
            String s2 = "hello";
            if(s1 == s2)
            {
                System.out.println("s1 == s2");
            }
            
            // s1若为null,会报错 NullPointerException
            if(s1.equals(s2))
            {
                System.out.println("sq equals s2");
            }
        }
    }
    

switch多重选择

switch (option) {
case 1:
    ...
    break;
case 2:
    ...
    break;
case 3:
    ...
    break;
default:
    break;
}

其中,option的数据类型可以必须是 整形、字符串或枚举型 类型,PS:千万不要忘了breakdefault;

while & do while循环

  • while:即让计算机根据条件做循环计算,在满足条件时继续循环,条件不满足时退出循环。在每次循环前,先判断条件是否成立,成立则执行循环体内语句,否则直接跳出循环;

    while(condition)
    {
        // 循环语句
    }
    // 继续执行后续代码
    
  • do...while先执行循环,再判断条件,条件满足则继续循环,不满足时退出循环,至少会循环一次

    do{
        // 执行循环语句
    } while(condition);
    

for循环

  • 利用计数器实现循环,先初始化计数器,然后在每次循环前检测循环条件,经每次循环后更新计数器;

    for(初始条件;循环检测条件;循环后更新计数器)
    {
    	// 循环执行语句    
  • for循环可以缺少初始化语句、循环条件和每次循环更新语句;

    // 不设结束条件
    for(int i = 0; ; i++){
    	...
    }
    
    // 不设结束条件和更新语句
    for(int i = 0; ;){
        ...
    }
    
    // 三者均不设置
    for( ; ; ){
        ...
    }
    
  • for each循环:用于遍历所有“可迭代”的数据类型,其循环的变量非计数器,而是对应数组中的每个元素,但同时它无法指定遍历顺序,也无法获取数组索引;

    // for 和 for each循环数组
    int[] array = {1,3,5,7,9};
    // for
    for(int i = 0; i < array.length; i++){
        System.out.println(array[i] + "\t");
    }
    // for each
    for(int n: array){
        System.out.println(n + "\t");
    }
    

    **PS:**计数器变量定义在for循环内部,循环体内部不修改计数器;

break和continue

  • break

    循环过程中用于跳出当前循环,常搭配if使用,总是跳出其所在的那一层循环;

    public class Main{
        public static void main(String[] args){
            int sum = 0;
            for(int i = 0; ; i++){
                sum += i;
                if(i == 100){
                    break;
                }
            }
            System.out.println(sum);
        }
    }
    
  • continue

    提前结束本次循环,直接进行下一次循环,常搭配if使用,满足条件时提取结束当次循环;

    public class Main{
        public static void main(String[] args){
            int sum = 0;
            for(int i = 0; i <= 100; i++){
                sum += i;
                // 计算1 + 2 + 3 + ... + 100的和,但是其中要减去 10
                if(i == 10){
                    continue;
                }
            }
            System.out.println(sum);
        }
    }
    

总结

本文章总结了流程控制中的输入输出、ifswitch、单重和多重循环以及跳出及终止循环的相关知识;

发布了104 篇原创文章 · 获赞 69 · 访问量 13万+

猜你喜欢

转载自blog.csdn.net/github_39655029/article/details/104914755