格式化输出、中断控制流程语句
2018-10-03 本文已影响0人
爱做梦的严重精神病患者
1.格式化输出
System.out.printf("Hello, %s. Next year, you'll be %d", name, age);
name和age两个参数分别替换%后面的转换符(s和d)。
转换符 | 类型 | 举例 |
---|---|---|
d | 十进制整数 | 159 |
x | 十六进制整数 | 9f |
o | 八进制整数 | 237 |
f | 定点浮点数 | 15.9 |
e | 指数浮点数 | 1.59e + 01 |
g | 通用浮点数 | ------ |
a | 十六进制浮点数 | 0x1.fccdp3 |
s | 字符串 | Hello |
c | 字符 | H |
b | 布尔 | True |
h | 散列码 | 42628b2 |
% | 百分号 | % |
n | 与平台有关的行分隔符 | ------- |
2.中断控制流程语句
break:分为带标签的break语句和不带标签的break语句。
不带标签的break语句,与用于退出switch语句和break语句一样,它也可以用于退出循环语句。
while( years <= 100)
{
balance += payment;
double interest = balance * interestRate / 100;
balance += interest;
if (balance >= goal) break;
years++;
}
带标签的break语句,用于跳出多重嵌套的循环语句。标签必须放在希望跳出的最外层循环之前,并且紧跟着一个冒号。
int n;
read_data://标签
while(...)//这个循环被标签标记
{
...
for (...)//这个内部循环没有被标记
{
System.out.print("...");
if (n < 0)
break read_data;//跳出循环while
...
}
}
...
continue:将流程转移到最内层循环的首部。
while (sum < goal)
{
System.out.print("...");
if (n < 0) continue;
sum += n;
}
如果n<0,则continue语句越过了当前循环体的剩余部分,立刻跳到循环首部。
如果将continue语句用于for循环中,就可以跳到for循环的“更新”部分:
for (count = 1; count <= 100; count++)
{
System.out.print("...");
if (n < 0) continue;
sum += n;
}
如果n<0,则continue语句跳到count++语句。
还有一种带标签的continue语句,将跳到与标签匹配的循环首部。