java入门:(eclipse的debug功能)、判断和循环(逻辑类型)

文章目录

  • 一、eclipse的debug
  • 二、if判断语句
    • 1.if
    • 2.if-else
    • 3.嵌套的判断语句
    • 4.级联的判断语句
    • 5.switch-case语句
    • 6.if语句常见的错误
  • 三、循环
    • 1.数位数
    • 2.while循环
    • 3.do-while循环
    • 4.while循环和do-while循环的区别
    • 5. 计数循环
    • 6.算平均数
    • 7.猜数
    • 8.整数分解(逆序)
    • 9.for循环
    • 10.复合赋值与自增
    • 11.break与continue的区别
    • 12.求素数
    • 13.多重循环
    • 14.逻辑类型
    • 15.求和
    • 16.求最大公约数
  • 四、总结
    • 1.判断
    • 2.循环
    • 3.逻辑类型



一、eclipse的debug

java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第1张图片



二、if判断语句

1.if


2.if-else

  • else 的意思是否则,if-else语句表示if语句不成立会怎么做
    java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第2张图片

3.嵌套的判断语句

  1. 嵌套的判断

java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第3张图片


  1. else的匹配
    java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第4张图片
  • 在if或else后面总是用{},即使只有一条语句的时候,
    可以避免计算机或别人对代码的误解

4.级联的判断语句

  1. 形如:
    java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第5张图片

  1. 单一出口
    java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第6张图片

推荐使用左边那种写法,养成良好的代码风格


5.switch-case语句

  1. switch
    java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第7张图片
  • 级联的判断语句过多时,用switch-case语句更方便快捷
  • 形如:
    java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第8张图片

第一个:控制表达式只能是整数型的结果,我也不怎么懂,推荐链接: Java中的Switch对整型、字符型、字符串型的具体实现细节,给你详细解答。
-----------------------------------------------------------------------------------------------------------
总结:swich只支持一种数据类型,那就是整型,其他数据类型都是转换成整型之后在使用switch的。


  1. break
    java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第9张图片

6.if语句常见的错误

java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第10张图片


  1. 忘了大括号Alt
  • if后面有多条语句时没有加大括号,只有第一句在判断语句内
if (age > 60)
	salary = salary * 1.2;
	System.out.println(salary)
	
//等于:
if (age > 60)
{
	salary = salary * 1.2;
}
System.out.println(salary)

  1. if后面的分号
    Alt
		if(age<MINOR)
			;//在if后加分号表示判断后什么也不做
		{
			System.out.print(false);
		}
		else//else没有if可以匹配,所以报错,
			//因为前面的if已经被 ";" 结束了

  1. 错误使用==和=
    java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第11张图片

  1. 使人困惑的else(代码风格问题)java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第12张图片


三、循环

1.数位数

  • 一个简单的求数字位数的程序,用于以下循环学习:
    		Scanner in = new Scanner(System.in);
    		int number = in.nextInt();
    		int count = 0;
    		while( number > 0)
    		{
    			number = number / 10;
    			count = count + 1;
    		}
    		System.out.print(count);
    

2.while循环

  1. while
    java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第13张图片

  1. 验证
  • 对数位数程序进行验证:
    java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第14张图片

  • 方法一:自己算
    ALt

  • 方法二:在循环体中插入显示变量的内容
    java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第15张图片

  • 方法三:debug调试程序
    java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第16张图片

  • 发现输入边界数据——0 时程序存在问题

3.do-while循环

  1. 问题回顾
  • 由于程序进入循环前就判断0>0错误,所以没有进入循环,位数count直接为0
  • 那如果能在进入循环后在判断0>0错误,位数coun就会为1,满足要求

  1. do-while
    java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第17张图片

  1. 改进
     		Scanner in = new Scanner(System.in);
    		int number = in.nextInt();
    		int count = 0;
    		do//do-while循环
    		{
    			number = number / 10;
    			count = count + 1;
    			System.out.println("number=" + number + "count=" + count);
    		} while( number > 0);
    		System.out.print(count);
    

4.while循环和do-while循环的区别

java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第18张图片

  • 图左先进循环体后判断是do-while循环
  • 图右先判断后进循环体是while循环
    java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第19张图片

5. 计数循环

  1. while
    java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第20张图片
  • 循环体内count先-1,后输出
	Scanner in = new Scanner(System.in);
		int count = 100;
		while ( count >= 0)  
		{
			count = count - 1;
			System.out.println(count);
		}
		System.out.println(count);
		System.out.println("发射!");
		//运行结果:99~-1  -1  发射
    • 循环体内count先输出,后-1
Scanner in = new Scanner(System.in);
		int count = 100;
		while ( count >= 0)
		{
			System.out.println(count);
			count = count - 1;
		}
		System.out.println(count);
		System.out.println("发射!");
		//运行结果:100~0  -1  发射
  • 换成do-while循环后结果没有影响
    java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第21张图片

6.算平均数

  • 输入多个数求平均值
    java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第22张图片
		Scanner in = new Scanner(System.in);
		int count = 0;
		int number = 0;
		int sum = 0;

//		//while循环方案
//		number = in.nextInt();
//		while ( number != -1 )
//		{
//			sum += number;//等同于sum = sum + number
//			count++;//count自加1,等同于count = count + 1
//			number = in.nextInt();
//		}
		
		
		//do-while循环方案
		do
		{
			number = in.nextInt();
			if ( number != -1 )//number=-1时不需要执行下面操作
			{
				sum += number;
				count++;
			}
		} while ( number != -1 );
		
		if ( count > 0 )//count为0时,sum/count无意义
		System.out.println("平均数 = " + (double)sum / count);

7.猜数

Alt

—— 思想步骤
java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第23张图片

Scanner in = new Scanner(System.in);
		
//		随机获取[1,100]之间的整数
		//Math.random()作用:获取[0,1)之间的浮点数
		int number = (int)(Math.random() * 100 + 1);//作用:获取从[1,100]之间的数
		int a;//用户猜的整数
		int count = 0;//计数
		
		//循环体需要先进行后判断,所以用do-while循环
//		System.out.println(number);
		do
		{
			a = in.nextInt();//用户输入猜想的整数
			count++;
			if ( a > number )
			{
				System.out.println("你猜大了");
			}
			else if ( a < number )
			{
				System.out.println("你猜小了");
			}
		} while ( a != number );
		System.out.println("恭喜你猜对了,你一共猜了" + count + "次!");

8.整数分解(逆序)

		Scanner in = new Scanner(System.in);
		
//		//方法一
//		int number = in.nextInt();
//		do
//		{
//			int digit = number % 10;//获取末位数
//			System.out.print(digit);//依次输出数的末位数,以达到逆序输出的目的
//			number = number / 10;//原数去除末位数
//		} while ( number > 0);
		
		//方法二
		int number = in.nextInt();
		int result = 0;//保存之前结果
		do
		{
			int digit = number % 10;//获取末位数
			result = result * 10 + digit;
			number = number / 10;//原数去除末位数
		} while ( number > 0);
		System.out.println(result);

9.for循环

  1. 引入:阶乘
    Alt
  • 用while循环
    java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第24张图片
  • 除了while循环,也可以使用for循环完成阶乘运算

  1. for循环的作用:

java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第25张图片


  1. for循环的结构:
    java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第26张图片

  1. for循环里面的循环控制变量i:

java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第27张图片


  1. for循环与while循环
  • for循环和while循环可以相互转换
    java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第28张图片

  1. for循环表达式的省略

java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第29张图片


  1. 空循环
    java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第30张图片
  • for(;;)后加分号“ ;” 会造成空循环,循环体并不执行
  • 同if和while,如果for循环的循环体里面只有一条语句,大括号{ } 可以省略
  • 无论大括号可不可以省略,都强烈建议加上大括号

  1. for循环次数


  1. while、do-while和for循环运用的建议

Alt


10.复合赋值与自增

java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第31张图片


11.break与continue的区别

Alt


12.求素数

java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第32张图片

		Scanner in = new Scanner(System.in);
		//求素数
		int n = in.nextInt();//输入一个数n,判断n是否为素数
		int isPrime = 1;//判断n是否为素数,1为是素数,0为不是素数
		for(int i = 2; i < n; i++)
		{
			if(n%i == 0)
			{
				isPrime = 0;
//				System.out.println(n + "不是素数,i=" + i);
				break;//当第一次有n能被i整除时,就能判断n不是素数,
					  //所以后面,n就不用依次被i除来多次判断n不是素数了
			}
		}
		if(isPrime == 1)
			System.out.println(n + "是素数");
		else
			System.out.println(n + "不是素数");

13.多重循环

  1. 求100以内的素数

java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第33张图片

	Scanner in = new Scanner(System.in);
		
		//在求素数的程序外套一层for循环
		for(int n = 2; n < 100; n++)//判断2~100是否为素数
		{
			//求素数
//			int n = in.nextInt();//输入一个数n,判断n是否为素数
			int isPrime = 1;//判断n是否为素数,1为是素数,0为不是素数
			for(int i = 2; i < n; i++)
			{
				if(n%i == 0)
				{
					isPrime = 0;
					break;//当第一次有n能被i整除时,就能判断n不是素数,
						  //所以后面,n就不用依次被i除来多次判断n不是素数了
				}
			}
			if(isPrime == 1)
				System.out.print(n + " ");
		}

  1. 更多事例

java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第34张图片

java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第35张图片


  1. 跳出多重循环
  • 事例:
    Alt

  • 方法一:设置控制变量,然后一层一层的用break跳出

java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第36张图片

  • 方法二:在多重循环前设置标号
    java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第37张图片

java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第38张图片


14.逻辑类型

  1. boolean
    java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第39张图片

  1. 逻辑运算符
    java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第40张图片

  1. 尝试运用逻辑运算符表达数学中的区间
    java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第41张图片

  1. 优先级
    Alt

15.求和

java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第42张图片

	Scanner in = new Scanner(System.in);
		
		int n = in.nextInt();
		double sum = 0;
		for(int i = 1; i <= n; i++)
		{
			sum += 1.0 / i;
		}
		System.out.printf("%.2f",sum);//printf设置数据的输出格式,此为输出小数点后两位

16.求最大公约数

java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第43张图片

  • 三个方法:

    	//求最大公约数
    		int a = in.nextInt();
    		int b = in.nextInt();
    		
    //		//方法一:枚举
    //		int gcd = 1;
    //		for(int i = 2; i <= a && i <= b; i++)
    //		{
    //			if(a % i == 0 && b % i == 0)
    //				gcd = i;
    //		}
    //		System.out.println(a + "和" + b + "的最大公约数是" + gcd);
    		
    		
    		
    //		//方法二:更相减损术
    //		while(a != b)
    //		{
    //			if(a > b)
    //				a = a - b;
    //			else if(b > a)
    //				b = b - a;
    //		}
    //		System.out.println("最大公约数是" + a);
    		
    		
    		
    		//方法三:辗转相除法
    		while(b != 0)
    		{
    			int t = a % b;
    			a = b;
    			b = t;
    		}
    		System.out.println("最大公约数是" + a);
    


四、总结

1.判断

  1. if语句
  2. 嵌套的判断语句
    java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第44张图片
  3. 级联的判断语句
    java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第45张图片
  4. switch语句
  5. 判断语句常见问题

2.循环

  1. while循环
    java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第46张图片

  2. do-while循环

  3. for循环

  4. 复合赋值与自增

java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第47张图片

  1. 退出循环
    java入门:(eclipse的debug功能)、判断和循环(逻辑类型)_第48张图片

3.逻辑类型

你可能感兴趣的:(java,java,eclipse)