一、优先级

1.1 先判断5>3,true 6>4 true;然后true==true ,最后是true;

1.2 6>5,true;而true和4无法比较。所以该判断出错;

1.3  和1.2比较,可以知道该比较可以正常进行

1.4 错误,

1.5 >号优先级要高于=。所以先判断b>false ,这个无法判断。所以错误

1.6 先判断a和b true 或者false,但是true和false 没法比较大小,所以也错误。

2、浮点数判断大小

package hello;

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
double a=1.0;
double b=0.2+0.2+0.2+0.2+0.2;
double c=0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1;
System.out.println("a="+a);
System.out.println("b="+b);
System.out.println("c="+c);
System.out.println(a==c);//浮点数直接判断相等很容易出错
System.out.println(Math.abs(a-c)<1e-6);//差值和很小的一个数比较
}
}

明显看到c逼近1,但是不是1,所以直接判断a==c,false ;

浮点数比较是要用差值比较。

3、

4、

switch 遇到break才退出,否则会越过case 继续做下一个case的任务。

package hello;

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
int a=1;
switch(a)
{
case 1:
case 2:
System.out.println("您好");
case 3:
System.out.println("晚上好");
break;
default:
System.out.println("再见");
break;
}
}
}

package hello;

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
int a=4;
switch(a)
{
default:
System.out.println("再见");
case 1:
case 2:
System.out.println("您好");
case 3:
System.out.println("晚上好");
break;
}
}
}

二、循环

2.1

package hello;

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
int num=in.nextInt();
int n=0;
while(num!=0)
{
n++;
num=num/10;
}
System.out.println(n);
}
}

输入为0时是有问题的。

package hello;

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
int num;
int n=0;
num=in.nextInt();
do
{
n++;
num=num/10;
}
while(num!=0);//分号别忘了
System.out.println(n);
}
}

2.2

package hello;
import java.util.Scanner;
public class Main { public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
int num=(int)(Math.random()*100);//生成随机数
int i=1;//次数
int n;
n=in.nextInt();
while(n!=num)
{
if(n>num)
{
System.out.println("大了");
}
else
{
System.out.println("小了");
}
n=in.nextInt();
i++;
}
System.out.println("随机数为:"+num+",猜了"+i+"次。");
}
}

三、循环控制

int 4个字节,4*8=32位。表示的最大数2^31-1,最小数-2^31。

3.1

package hello;
import java.util.Scanner;
public class Main { public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
System.out.println("100以内素数有:");
int num=0;
for(int i=2;i<=100;i++)
{
int flag=0;//素数标志
for(int j=2;j<=(int)Math.sqrt(i);j++)
{
if(i%j==0)//不是素数
{
flag=1;//不是素数
break;
}
}
if(flag==0)//素数
{
num++;
System.out.println(i);
}
}
System.out.println("100以内素数个数为:"+num);
}
}

3.2

枚举方法求多种情况。

package hello;
import java.util.Scanner;
public class Main { public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int amount = in.nextInt();//总钱数
for ( int one = 0; one <=amount; ++one )//1块钱从1到33张
{
for ( int five = 0; five <= amount/5; ++five )//5块钱 从1到6张
{
for ( int ten = 0; ten <= amount/10; ++ten )//10块钱 从1到3张
{
for ( int twenty = 0; twenty <= amount/20; ++twenty )//20块钱 1张
{
if ( one+five*5+ten*10+twenty*20 == amount )
{
System.out.println(one+"张1元,"+five+"张5元,"+ten+"张10元,"+twenty+"张20元-->"+amount);
}
}
}
}
}
}
}

多个循环跳出

3、

3.1

package Hello;

import java.util.Scanner;

public class hello_test {

	public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
int n=in.nextInt();
double sum=0.0;
for(int i=1;i<=n;i++)
{
sum+=(1.0/i);
}
System.out.println(sum);//输出原数
System.out.printf("%.2f",sum);//输出 保留两位小数;注意输出的函数变了 } }

3.2

(1)利用标志位,正负变换

package Hello;

import java.util.Scanner;

public class hello_test {

	public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);//创建扫描器
int n=in.nextInt();
double sum=0.0;
int flag=1;//标志位
for(int i=1;i<=n;i++)
{
sum+=(flag*(1.0/i));
flag=-flag;
}
System.out.println(sum);//输出原数
System.out.printf("%.2f",sum);//输出 保留两位小数;注意输出的函数变了
in.close();//关闭扫描器
} }

(2)

package Hello;

import java.util.Scanner;

public class hello_test {

	public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);//创建扫描器
int n=in.nextInt();
double sum=0.0;
for(int i=1;i<=n;i++)
{
sum+=Math.pow(-1, i+1)*(1.0/i);//注意乘方怎么表示
}
System.out.println(sum);//输出原数
System.out.printf("%.2f",sum);//输出 保留两位小数;注意输出的函数变了
in.close();//关闭扫描器
} }

4、

(1)逆向递减求

package Hello;

import java.util.Scanner;

public class hello_test {

	public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);//创建扫描器
int n=in.nextInt();
int m=in.nextInt(); //输入两个值
int i=n;
while(n%i!=0 || m%i!=0)
{
i--;
}
System.out.println(m+"和"+n+"的最大公约数是:"+i);
in.close();//关闭扫描器
} }

(2)辗转相除求

package Hello;

import java.util.Scanner;

public class hello_test {

	public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);//创建扫描器
int n=in.nextInt();
int m=in.nextInt(); //输入两个值
int a,b,y;
a=n;
b=m;
y=m;
while(a%b!=0) //辗转相除法
{
y=a%b;//余数
a=b;
b=y;
}
System.out.println(m+"和"+n+"的最大公约数是:"+b);
in.close();//关闭扫描器
} }

  

Java 判断 循环的更多相关文章

  1. 第二周:Java For循环方法简介

    1.for循环的作用 Java当中循环的意思就是让Java程序重复地执行某些语句.在程序设计时,常常需要处理大量的重复动作, 采用循环结构可以降低程序书写的长度和复杂度可使复杂问题简单化,提高程序的可 ...

  2. [Java基础]循环结构3

    [Java基础]循环结构3 break 与 continue 中断循环... /** 文件路径:G:\JavaByHands\循环语句\ 文件名称:BreakTest.java 编写时间:2016/6 ...

  3. [java基础]循环结构2

    [java基础]循环结构2 写了几个循环结构练习~记录一下~~ 1:99乘法表 /** 文件路径:G:\JavaByHands\循环语句\ 文件名称:GameForFor.java 编写时间:2016 ...

  4. [java基础]循环结构1

    [java基础]循环结构1 循环结构:for循环,while循环,do_while循环在,增强型for循环 /** 文件路径:G:\JavaByHands\循环语句\ 文件名称:WhileTest.j ...

  5. 07_Python的控制判断循环语句1(if判断,for循环...)_Python编程之路

    Python的数据类型在前几节我们都简单的一一介绍了,接下来我们就要讲到Python的控制判断循环语句 在现实编程中,我们往往要利用计算机帮我们做大量重复计算的工作,在这样的情况下,需要机器能对某个条 ...

  6. java集合循环删除

    java集合循环删除,java list集合操作,java循环.分享牛,分享牛原创.java集合删除方法. 2.6.1.第一种方式 list.add("1"); list.add( ...

  7. Java学习笔记九:Java的循环跳转语句

    Java的循环跳转语句 一:Java循环跳转语句之break: 生活中,我们经常会因为某些原因中断既定的任务安排.如在参加 10000 米长跑时,才跑了 500 米就由于体力不支,需要退出比赛.在 J ...

  8. Java判断一个类里是否存在某个属性

    Java判断一个类里是否存在某个属性 测试pojo类,比方我有个User类 @Getter @Setter public class User { private Long id; private S ...

  9. Java之 循环(三)

    1. switch语句 1.1 分支语句switch语句 格式 switch (表达式) { case 1: 语句体1; break; case 2: 语句体2; break; ... default ...

随机推荐

  1. python——字符串截取

    str = ‘0123456789’ print str[0:3] #截取第一位到第三位的字符 print str[:] #截取字符串的全部字符 print str[6:] #截取第七个字符到结尾 p ...

  2. 数据库--Redis

    原因: 源码是官方configure过的,但官方configure时,生成的文件有时间戳信息,所以如果你的虚拟机的时间不对,比如说是2022年,就可能会出错 解决: date -s ‘yyyy-mm- ...

  3. Flutter Form表单控件超全总结

    注意:无特殊说明,Flutter版本及Dart版本如下: Flutter版本: 1.12.13+hotfix.5 Dart版本: 2.7.0 Form.FormField.TextFormField是 ...

  4. burpsuit之Spider、Scanner、Intruder模块

    1.spider模块 1.spider模块介绍 被动爬网:(被动爬网获得的链接是手动爬网的时候返回页面的信息中分析发现超链接) 对于爬网的时候遇到HTML表单如何操作: 需要表单身份认证时如何操作(默 ...

  5. 分享几个 PHP 编码的最佳实践

    对于初学者而言,可能很难理解为什么某些做法更安全. 但是,以下一些技巧可能超出了 PHP 的范围. 始终使用大括号 让我们看下面的代码: if (isset($condition) && ...

  6. Java第一节课动手动脑

    在第一节课的动手动脑中,主要解决四则运算问题. 首先第一个是出30道四则运算题目,在100以内.这个问题需要控制随机数生成的范围和结果的范围在100以内就可以. 第一次改进是3点:一为避免重复,二为定 ...

  7. tars之springboot的初步使用

    公司要求使用tars框架,现学习的,听老大讲的经验和看的一些技术博客,感觉和SpringCloud有些相似,不过内部有自己的规范,基于rpc实现的服务与服务之间的远程调用,而cloud的远程调用是基于 ...

  8. Journal of Proteomics Research | 构建用于鉴定蓖麻毒素的串联质谱库

    文章题目:Constructing a Tandem Mass Spectral Library for Forensic Ricin Identification 构建用于鉴定蓖麻毒素的串联质谱库 ...

  9. F版本SpringCloud 3—大白话Eureka服务注册与发现

    引用:服务注册与发现,就像是租房子一样 前言 今天洛阳下雨了,唉,没有想到有裹上了羽绒服,不穿冷穿了热的尴尬温度.上学工作这么多年都在外面,家里竟然没有一件春天的外套. 日常闲聊之后,开始今天的芝士环 ...

  10. IdentityServer4源码解析_1_项目结构

    目录 IdentityServer4源码解析_1_项目结构 IdentityServer4源码解析_2_元数据接口 IdentityServer4源码解析_3_认证接口 IdentityServer4 ...