输入&输出
输入
从控制台获取输入,需要导入
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...
}
复制
-
引用类型和引用类型的变量内容相等判断
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"); } } }
-
:用于判断引用类型是否相等,用于判断两个对象是否指向同一对象;==
-
:用于判断引用类型的变量内容是否相等;equals()
-
switch多重选择
switch (option) {
case 1:
...
break;
case 2:
...
break;
case 3:
...
break;
default:
break;
}
复制
其中,
option
的数据类型可以必须是 整形、字符串或枚举型 类型,PS:千万不要忘了
break
和
default
;
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); } }
总结
本文章总结了流程控制中的输入输出、
if
、
switch
、单重和多重循环以及跳出及终止循环的相关知识;