Jvav流程控制
Java流程控制
2026.01.11
用户交互Scanner
scanner接收用户输入的主要方式有两种;
凡是属于io流(即输入输出)的类,要关闭才能不占用资源!!!!
使用scanner.close()关闭
-
next()
-
一定要读取到有效字符后才可以结束输入
-
对于输入有效字符之前的空白,next()方法会自动将其去掉
-
只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符
-
next()不能得到带有空格的字符串
package Control; import java.util.Scanner; public class Demo01 { static void main(String[] args) { //创建一个扫描器对象,用于接收键盘数据 Scanner scanner=new Scanner(System.in); System.out.println("使用next方式接收:"); //判断用户有没有输入字符串 if(scanner.hasNext()){ //使用next方式接收 String str= scanner.next();//真正开始读取输入的语句 System.out.println("输出的内容为:"+str); } //凡是属于io流(即输入输出)的类,要关闭才能不占用资源 scanner.close(); //输入Hello World,输出的是Hello } }
-
-
nextLine()
-
以Enter为结束符,也就是nextLine()返回的值是回车之前的所有字符
-
可以获得字符串中间的空白
package Control; import java.util.Scanner; public class Demo02 { static void main(String[] args) { Scanner scanner=new Scanner(System.in); System.out.println("使用nextline方式接收:"); if(scanner.hasNextLine()){ String str=scanner.nextLine();//真正开始读取输入的语句 System.out.println("输出的内容为:"+str); } scanner.close(); //输入Hello World ,输出Hello World } }
-
在程序中,我们可以使用hasNext***()来判断用户输入的数据类型
其中***代表要判断的数据类型
package Control;
import java.util.Scanner;
public class Demo03 {
static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
//从键盘接收数据
int i=0;
double a=0;
System.out.println("请输入整数:");
if(scanner.hasNextInt()){
i=scanner.nextInt();
System.out.println("整数 "+i);
}
else{
System.out.println("输入类型不正确!!");
}
System.out.println("请输入小数:");
if(scanner.hasNextDouble()){
a=scanner.nextDouble();
System.out.println("小数 "+a);
}
else{
System.out.println("输入类型不正确!!");
}
scanner.close();
}
}
//输出结果:
//请输入整数:2 整数 2 请输入小数:2.33 小数 2.33
hasNext***()判断示例:
输入多个数字,求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入
package Control;
import java.util.Scanner;
public class Demo04 {
static void main(String[] args) {
//输入多个数字,求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入
Scanner scanner=new Scanner(System.in);
double sum=0;
int i=0;
double n=0;
double average=0;
System.out.println("请输入数字,以非数字结尾可结束输入\n");
//这里判断输入类型是否为double类型
while(scanner.hasNextDouble()) {
n=scanner.nextDouble();
sum=sum+n;
i++;
}
average=sum/i;
System.out.println("总和是 "+sum);
System.out.println("平均值 "+average);
scanner.close();
//请输入数字,以非数字结尾可结束输入
//
//1
//2.3
//4.5
//3.4
//t
//总和是 11.2
//平均值 2.8
}
}
顺序结构
这里不多说了,就是代码从上到下执行
啊哈这个不会的话
你的c语言基础在天上失望的看着你
选择结构
单选择结构————> if语句
双选择结构————> if-else语句
多选择结构————> if- else if -else语句
嵌套if结构
switch多选择结构
选择结构这一节与c语言几乎一模一样,不多赘述
需要注意的:
在对字符串进行比较时,不要使用==!!!
Scanner scanner=new Scanner(System.in);
System.out.println("请输入字符串");
String a=scanner.nextLine();
//equals()是判断字符串是否相等的方法,判断字符串不要用==!!!
if(a.equals("Hello")){
System.out.println(a);
}
循环结构
while循环
do-while循环
for循环
也是,和c语言大差不差,这里不过多赘述
需要注意的:
我们之前一直用的System.out.println()是竖着输出值的
要想正常实现横着输出,应该用System.out.print()
即:println输出完会自动换行
print输出完不会换行
加强for循环
package com.flora.base.struct;
public class forDemo06 {
static void main(String[] args) {
int[] number={1,2,3,4,5};
//常规遍历数组方式:
for(int i=0;i<5;i++){
System.out.print(number[i]);
}
//输出:12345
//for循环加强后的遍历方式:
for(int x:number){
System.out.print(x);
}
//输出:12345
}
}
for循环加强版使得数组遍历更加方便编写了呢
真是一次酣畅淋漓又具有实用性的加强啊!!!
(加强格莉丝!!!(误
goto语句,当扩展使用的没必要真明白哈
package com.flora.base.struct;
public class gotoDemo {
static void main(String[] args) {
//打印101-150之间的所有质数
outer: for(int i=101;i<=150;i++){
for(int j=2;j<(i/2);j++){
if(i%j==0){
continue outer;
}
}
//如果i不是质数,回到大循环重新执行
//如果i是质数,输出
System.out.print(i+" ");
}
}
}
//输出结果:101 103 107 109 113 127 131 137 139 149
空心三角形(打着玩呗~
package com.flora.base.struct;
import java.util.Scanner;
public class Test {
static void main(String[] args) {
//打印指定行数的三角形
Scanner scanner=new Scanner(System.in);
System.out.println("请输入一个n:");
int n=scanner.nextInt();
for(int i=1;i<n;i++) {
for (int j = 1; j <= n - i; j++) {
System.out.print(" ");
}
if (i == 1) {
System.out.println("*");
continue;
}
else {
System.out.print("*");
for (int a = 1; a <= 2 *i-3; a++) {
System.out.print(" ");
}
System.out.print("*");
}
System.out.println();
}
for(int k=0;k<2*n-1;k++){
System.out.print("*");
}
scanner.close();
}
}
//输出结果:
//请输入一个n:
//5
// *
// * *
// * *
// * *
//*********
浙公网安备 33010602011771号