Java 获得';其他';没有';如果';错误,我不知道怎么做

Java 获得';其他';没有';如果';错误,我不知道怎么做,java,Java,以下代码导致语法错误'else'而不带'if'。 我也不能从if语句中删除分号,因为它还会给我一个错误,告诉我缺少分号 import java.util.Scanner; class cake { public static void main(String[] args) { byte age, height; Scanner in = new Scanner(System.in); System.out.println("How o

以下代码导致语法错误
'else'而不带'if'
。 我也不能从if语句中删除分号,因为它还会给我一个错误,告诉我缺少分号

import java.util.Scanner;

class cake {
    public static void main(String[] args) {
        byte age, height;
        Scanner in = new Scanner(System.in);

        System.out.println("How old are you?");
        age = in.nextByte();

        System.out.println("How tall are you?");
        height = in.nextByte();

        if (age >= 10) && (height >= 48); {
            System.out.println("You can ride!");        
        } else {
            System.out.println("You cannot ride!");
        }   
    }
}

你需要把所有的东西都放在括号里

 if ((age >= 10) && (height >= 48)) {
用此代码替换if---else条件

if ((age >= 10) && (height >= 48)) {
        System.out.println("You can ride!");        
    } else {
        System.out.println("You cannot ride!");
    } 
在“')之后有分号。请删除分号。这是主要问题

   if (age >= 10) && (height >= 48); 

我建议您使用
nextInt
而不是
nextByte
。还要编写if语句,如
if((年龄>=10)和&(身高>=48))

这应该能解决你的问题

你需要做什么

if ((age >= 10) && (height >= 48)) {
        System.out.println("You can ride!");        
    } else {
        System.out.println("You cannot ride!");
    }
因为表达式
(年龄>=10)和&(身高>=48)
需要在
if
块中完全求值

if (age >= 10) && (height >= 48); 
请看您添加的这一行结尾和if语句未正确括起。因此,将这两个语句都放在一个偏执句中,并删除现在语句变为

if ((age >= 10) && (height >= 48)) {
阅读此链接:

替换

 if (age >= 10) && (height >= 48)
 if ((age >= 10) && (height >= 48))

而不是

if (age >= 10) && (height >= 48);

看一看:

这是您修改过的代码,我刚刚添加了()第一个和最后一个If条件

现在它运行良好

import java.util.Scanner;

class Cake {
    public static void main(String[] args) {
        byte age, height;
        Scanner in = new Scanner(System.in);

        System.out.println("How old are you?");
        age = in.nextByte();

        System.out.println("How tall are you?");
        height = in.nextByte();

        if ( (age >= 10) && (height >= 48) ) {
            System.out.println("You can ride!");        
        } else {
            System.out.println("You cannot ride!");
        }   
    }
}

但有一件事我必须告诉你“你有多高?不接受十进制数

一个字节不会比一个整数节省更多的内存吗,特别是当这个人不应该超过-128或+127时?是的!但是如果你把if语句搞砸了,可能更容易坚持int。只是一个建议!总有一天,人类的预期寿命将超过128岁,您的代码将失败:)@jasonecastro:处理器无法访问任何小于其寄存器大小(32位/64位)的内容。如果JVM能够将多个字节变量(例如4)合并到一个“处理器字”中,那么一个字节实际上可以节省内存。我不知道Java中有这样的优化。因此,
字节
很可能使用与
长字节
相同的内存量。然后我应该将高度声明为浮点数,对吗?是的,您还需要调用.nextFloat();//用于在.nextInt()中接受浮点;//用于在.nextDouble()中接受int;//接受双重待遇等。。。下面是scanner类外部括号的文档。。。。如果((年龄>=10)&(身高>=48))如果(年龄>=10)&(身高>=48);=>;关闭语句。如果,请删除
后面的分号,并将所有内容放在括号中。
import java.util.Scanner;

class Cake {
    public static void main(String[] args) {
        byte age, height;
        Scanner in = new Scanner(System.in);

        System.out.println("How old are you?");
        age = in.nextByte();

        System.out.println("How tall are you?");
        height = in.nextByte();

        if ( (age >= 10) && (height >= 48) ) {
            System.out.println("You can ride!");        
        } else {
            System.out.println("You cannot ride!");
        }   
    }
}