Java流程控制
2021-01-28 13:14
标签:short 返回 方法 程序 输入 结构 ase 单选 实现 java.util.Scanner 是Java5的新特性,可以通过Scanner类来获取用户的输入 next() 与 nextLine() 区别 next(): 1、一定要读取到有效字符后才可以结束输入。 2、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。 3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。 next() 不能得到带有空格的字符串。 nextLine(): 1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。 2、可以获得空白 如果要输入 int 或 float 类型的数据,在 Scanner 类中也有支持,但是在输入之前最好先使用 hasNextXxx() 方法进行验证,再使用 nextXxx() 来读取: 以下实例我们可以输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果: Java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行。 顺序结构是最简单的算法结构。 语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本语法结构。 if单选择结构 我们需要去判断一个东西是否可行,然后我们才会去执行,这样的一个过程在程序中用if语句来表示 语法: if(布尔表达式){ //如果布尔表达式为true将执行的语句 } if双选择结构 如果需要判断考试分数是否及格,大于等于60分及格,否则就不及格,这样我们需要一个双选择结构,if-else 语法: if(布尔表达式){ //如果布尔表达式为true将执行的语句 }else{ //如果布尔表达式为false将执行的语句 } if多选择结构 生活中有时候需要判断的情况很多,不仅仅只有两个,那么我们就需要用一个多选择结构来处理if-else if-else 语法: if(布尔表达式1){ //如果布尔表达式1为true将执行的语句 }else if(布尔表达式2){ //如果布尔表达式2为true将执行的语句 }else if(布尔表达式3){ //如果布尔表达式3为true将执行的语句 }else{ //如果以上都不是true将执行的语句 } 嵌套的if结构 使用嵌套的if...else语句是合法的。也就是在另一个if或者else if语句中使用if或者else if 语句。可以像if语句一样嵌套else if ...else 语句: if(布尔表达式1){ //如果布尔表达式1为true将执行的语句 if(布尔表达式2){ //如果布尔表达式2为true将执行的语句 } } switch多选择结构 多选择结构还有一个实现方式switch case 语句 switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。 switch 语句中的变量类型可以是: byte、short、int、或者char 从Java SE7开始 switch 支持字符串 String类型 同时 case 标签必须为字符串常量或字面量 最基本的循环,结构为: while(布尔表达式){ //循环内容 } 只要布尔表达式为true,循环就会一直执行下去; 为了让循环能够停下来,我们需要一个让表达式不成立的方式结束循环; 如果循环条件一直为true就会造成死循环 对于while语言而言,如果不满足条件,则不能进入循环。但有时候需要即便不满足条件的时候也要至少执行一次。 do{ //代码块 }while(布尔表达式); while 和 do-while的区别: while先判断后执行;do-while 先执行后判断 do-while总是保证循环体会被至少执行一次。 虽然所有的循环结构都可以用while或者do-while表示,但是Java提供了另一种语句——for循环,使一些循环结构变得更加简单。 for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构。 for循环执行的次数是在执行前就确定的。 语法: for(初始化; 布尔表达式; 更新) { //代码语句 } 在Java5中引入了一种主要用于数组的增强型for循环 增强for循环语法 for(声明语句 : 表达式){ //代码语句 } 声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。 表达式:表达式要访问的数组名,或者返回值为数组的方法Java流程控制
1、用户交互Scanner
import java.util.Scanner;
?
public class Demo1 {
public static void main(String[] args) {
//创建一个扫描器对象,用来接收键盘数据
Scanner scan = new Scanner(System.in);
// next方式接收字符串
System.out.println("next方式接收:");
// 判断是否还有输入
if (scan.hasNext()) {
String str1 = scan.next();
System.out.println("输入的数据为:" + str1);
}
//凡是属于IO流的类用完都得关闭,不然会一直占用资源
scan.close();
}
}
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
// 从键盘接收数据
int i = 0;
float f = 0.0f;
System.out.print("输入整数:");
if (scan.hasNextInt()) {
// 判断输入的是否是整数
i = scan.nextInt();
// 接收整数
System.out.println("整数数据:" + i);
} else {
// 输入错误的信息
System.out.println("输入的不是整数!");
}
System.out.print("输入小数:");
if (scan.hasNextFloat()) {
// 判断输入的是否是小数
f = scan.nextFloat();
// 接收小数
System.out.println("小数数据:" + f);
} else {
// 输入错误的信息
System.out.println("输入的不是小数!");
}
scan.close();
}
}import java.util.Scanner;
class ScannerDemo {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
double sum = 0;
int m = 0;
while (scan.hasNextDouble()) {
double x = scan.nextDouble();
m = m + 1;
sum = sum + x;
}
System.out.println(m + "个数的和为" + sum);
System.out.println(m + "个数的平均值是" + (sum / m));
scan.close();
}
}2、顺序结构
3、选择结构
4、循环结构
while 循环
do...while 循环
for 循环
public class Demo6 {
public static void main(String[] args) {
int[] numbers = {10,20,30,40,50};
//for循环遍历输出
for (int i = 0;inumbers.length;i++){
System.out.println(numbers[i]);
}
System.out.println("===================");
//增强for循环
for (int x : numbers){
System.out.println(x);
}
}
}
5、break&continue
-
break在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句。(也可用在switch语句中使用)
-
continue 语句用在循环语句体中,用于终止某次循环过程,即跳出循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。
goto关键字
-
goto关键字很早在程序设计语言中出现,尽管goto仍是Java的一个保留字,但并未在语言中得到正式使用;Java没有goto,然而,break和continue这两个关键字的身上,我们仍然能看出一些goto的影子--带标签的break和continue。
-
"标签"是指后面跟一个冒号的标识符,例如:label:
-
对Java来说唯一用到标签的地方是在循环语句之前。而在循环之前设置标签的唯一理由是:我们希望在其中嵌套另一个循环,由于break和continue关键字通常只中断当前循环,但若随同标签使用,他们就会中断到存在标签的地方。
6、练习
public class Demo5 {
public static void main(String[] args) {
/*计算0-100之间奇数和偶数的和
int oddSum = 0;
int evenSum = 0;
for(int i = 0;i if (i % 2 != 0){
oddSum += i;
}else{
evenSum += i;
}
}
System.out.println("100以内奇数的和为:" + oddSum);
System.out.println("100以内偶数的和为:" + evenSum);*/
/* for循环输出1-1000之间被5整除的数,每行输出3个
for(int i = 1;i if (i % 5 == 0) {
System.out.print(i + "\t");
}
if (i % (5*3) == 0){
System.out.println();
}
}*/
/* while循环输出1-1000之间被5整除的数,每行输出3个
int i = 1;
while(i if (i % 5 == 0){
System.out.print(i + "\t");
}
if (i % (5*3) == 0){
System.out.println();
}
i++;
}*/
/* 九九乘法表
for (int i = 1;i for (int j = 1;j System.out.print(j + "*" + i + "=" + (i * j) + "\t");
}
System.out.println();
}*/
/*输出了一个心型图案
for (int i = 0;i if (i % 2 ==0) {
for (int j = 0; j if (j == 2 || j == 6) {
System.out.print("*");
} else {
System.out.print("-");
}
}
}else if (i == 1){
for (int k = 0;k if (k == 1 || k == 4 || k == 7) {
System.out.print("*");
} else {
System.out.print("-");
}
}
}else{
for (int l = 1;l if (l == 5){
System.out.print("*");
}else{
System.out.print("-");
}
}
}
System.out.println();
}*/
/*交叉图形
for (int i = 0;i for (int j = 0;j if (j == i||j == 10-i-1){
System.out.print("&");
}else {
System.out.print("-");
}
}
System.out.println();
}*/
/* for循环输出打印三角形
for (int i = 1;i for (int j = 9;j >= 1;j--){
if (j > (5 - 1 + i)){
System.out.print(" ");
}else if (j System.out.print(" ");
}
else{
System.out.print("*");
}
}
System.out.println();
}*/
/* for循环输出打印三角形
for (int i = 1;i for (int j = 5;j >= i;j--){
System.out.print(" ");
}
for (int j = 1;j System.out.print("*");
}
for (int j = 1;j System.out.print("*");
}
System.out.println();
}*/
}
}
Java流程控制
标签:short 返回 方法 程序 输入 结构 ase 单选 实现
原文地址:https://www.cnblogs.com/WanGYIwen-/p/12838192.html
上一篇:Java:AES 加密
下一篇:Java面向对象之多态