Not a statement java ошибка перевод

I am new to java programming. I tried hello world program, but I got an error «not a statement«. Whereas when I copy, paste the hello world program from the internet, my program compiled. This is the program I used. What is meant by «not a statement«, please explain why I got this error and what is meant by it and what should I look for when I get this error in the future. Thanks!

public class hello
{
    public static void main(String args[]) {    
        System.out.println(“hello world”);
    }
}

My errors:-

hello.java:8: error: illegal character: 'u201c'
       System.out.println(“hello world”);
                          ^
hello.java:8: error: ';' expected
       System.out.println(“hello world”);
                           ^
hello.java:8: error: illegal character: 'u201d'
       System.out.println(“hello world”);
                                         ^
hello.java:8: error: not a statement
       System.out.println(“hello world”);
                                 ^
4 errors

Shar1er80's user avatar

Shar1er80

8,9912 gold badges20 silver badges28 bronze badges

asked Jul 6, 2018 at 15:38

Goku's user avatar

3

You code cannot contain smart quotes like your used in your «Hello World». I replaced your smart/fancy quotes with the correct kind.

public class hello
{
    public static void main(String args[]) {    
        System.out.println("hello world");
    }
}

answered Jul 6, 2018 at 15:47

Matthew S.'s user avatar

Matthew S.Matthew S.

3111 gold badge9 silver badges22 bronze badges

 import java.util.Scanner;
 public class FloydTriangle {
 public static void main(String[] args){

    int range, i, j, k=1;
    Scanner scan = new Scanner(System.in);
    System.out.println("Enter the num of rows: ");
    range=scan.nextInt();
    System.out.println("Floyd's Triangle :n");
    for(i=1; i<=range; i++)
    {
        for(j=1, j<=i; j++; k++)
        {
            System.out.println(k + " ");
        }
        System.out.println();
    }
}
}

Следующий код при компиляции выдает ошибку: Error:(15, 23) java: not a statement в этой строке: for(j=1, j<=i; j++; k++)

задан 5 фев 2018 в 19:17

Tur6o's user avatar

1

Первый for написали правильно, а второй нет. Вместо , нужно ;.

        for(j=1; j<=i; j++, k++)
        {
            System.out.println(k + " ");
        }

ответ дан 5 фев 2018 в 19:21

Tsyklop's user avatar

TsyklopTsyklop

3,8474 золотых знака23 серебряных знака53 бронзовых знака

2

Автор оригинала: Kai Yuan.

1. Обзор

“Незаконное начало выражения”-это распространенная ошибка, с которой мы можем столкнуться во время компиляции.

В этом уроке мы рассмотрим примеры, иллюстрирующие основные причины этой ошибки и способы ее устранения.

2. Отсутствующие Фигурные Скобки

Отсутствие фигурных скобок может привести к ошибке “незаконное начало выражения”. Давайте сначала рассмотрим пример:

package com.baeldung;

public class MissingCurlyBraces {
    public void printSum(int x, int y) {
        System.out.println("Calculation Result:" + calcSum(x, y));
        
    public int calcSum(int x, int y) {
        return x + y;
    }
}

Если мы скомпилируем вышеуказанный класс:

$ javac MissingCurlyBraces.java
MissingCurlyBraces.java:7: error: illegal start of expression
        public int calcSum(int x, int y) {
        ^
MissingCurlyBraces.java:7: error: ';' expected
        public int calcSum(int x, int y) {
   .....

Отсутствие закрывающей фигурной скобки print Sum() является основной причиной проблемы.

Решение проблемы простое — добавление закрывающей фигурной скобки в метод printSum() :

package com.baeldung;

public class MissingCurlyBraces {
    public void printSum(int x, int y) {
        System.out.println("Calculation Result:" + calcSum(x, y));
    }
    public int calcSum(int x, int y) {
        return x + y;
    }
}

Прежде чем перейти к следующему разделу, давайте рассмотрим ошибку компилятора.

Компилятор сообщает, что 7-я строка вызывает ошибку “незаконное начало выражения”. На самом деле, мы знаем, что первопричина проблемы находится в 6-й строке. Из этого примера мы узнаем, что иногда ошибки компилятора не указывают на строку с основной причиной , и нам нужно будет исправить синтаксис в предыдущей строке.

3. Модификатор Доступа Внутри Метода

В Java мы можем объявлять локальные переменные только внутри метода или конструктора . Мы не можем использовать модификатор доступа для локальных переменных внутри метода, поскольку их доступность определяется областью действия метода.

Если мы нарушим правило и у нас будут модификаторы доступа внутри метода, возникнет ошибка “незаконное начало выражения”.

Давайте посмотрим на это в действии:

package com.baeldung;

public class AccessModifierInMethod {
    public void printSum(int x, int y) {
        private int sum = x + y; 
        System.out.println("Calculation Result:" + sum);
    }
}

Если мы попытаемся скомпилировать приведенный выше код, мы увидим ошибку компиляции:

$ javac AccessModifierInMethod.java 
AccessModifierInMethod.java:5: error: illegal start of expression
        private int sum = x + y;
        ^
1 error

Удаление модификатора private access легко решает проблему:

package com.baeldung;

public class AccessModifierInMethod {
    public void printSum(int x, int y) {
        int sum = x + y;
        System.out.println("Calculation Result:" + sum);
    }
}

4. Вложенные методы

Некоторые языки программирования, такие как Python, поддерживают вложенные методы. Но, Java не поддерживает метод внутри другого метода.

Мы столкнемся с ошибкой компилятора “незаконное начало выражения”, если создадим вложенные методы:

package com.baeldung;

public class NestedMethod {
    public void printSum(int x, int y) {
        System.out.println("Calculation Result:" + calcSum(x, y));
        public int calcSum ( int x, int y) {
            return x + y;
        }
    }
}

Давайте скомпилируем приведенный выше исходный файл и посмотрим, что сообщает компилятор Java:

$ javac NestedMethod.java
NestedMethod.java:6: error: illegal start of expression
        public int calcSum ( int x, int y) {
        ^
NestedMethod.java:6: error: ';' expected
        public int calcSum ( int x, int y) {
                          ^
NestedMethod.java:6: error:  expected
        public int calcSum ( int x, int y) {
                                   ^
NestedMethod.java:6: error: not a statement
        public int calcSum ( int x, int y) {
                                        ^
NestedMethod.java:6: error: ';' expected
        public int calcSum ( int x, int y) {
                                         ^
5 errors

Компилятор Java сообщает о пяти ошибках компиляции. В некоторых случаях одна ошибка может привести к нескольким дальнейшим ошибкам во время компиляции.

Выявление первопричины имеет важное значение для того, чтобы мы могли решить эту проблему. В этом примере первопричиной является первая ошибка “незаконное начало выражения”.

Мы можем быстро решить эту проблему, переместив метод calcSum() из метода print Sum() :

package com.baeldung;

public class NestedMethod {
    public void printSum(int x, int y) {
        System.out.println("Calculation Result:" + calcSum(x, y));
    }
    public int calcSum ( int x, int y) {
        return x + y;
    }
}

5. символ или строка Без кавычек

Мы знаем, что String литералы должны быть заключены в двойные кавычки, в то время как char значения должны быть заключены в одинарные кавычки.

Если мы забудем заключить их в соответствующие кавычки, компилятор Java будет рассматривать их как имена переменных .

Мы можем увидеть ошибку “не удается найти символ”, если “переменная” не объявлена.

Однако если мы забудем дважды заключить в кавычки Строку , которая не является допустимым именем переменной Java , компилятор Java сообщит об ошибке “незаконное начало выражения” .

Давайте посмотрим на это на примере:

package com.baeldung;

public class ForgetQuoting {
    public int calcSumOnly(int x, int y, String operation) {
        if (operation.equals(+)) {
            return x + y;
        }
        throw new UnsupportedOperationException("operation is not supported:" + operation);
    }
}

Мы забыли процитировать строку |//+ внутри вызова метода equals , и + , очевидно, не является допустимым именем переменной Java.

Теперь давайте попробуем его скомпилировать:

$ javac ForgetQuoting.java 
ForgetQuoting.java:5: error: illegal start of expression
        if (operation.equals(+)) {
                              ^
1 error

Решение проблемы простое — обертывание String литералов в двойные кавычки:

package com.baeldung;

public class ForgetQuoting {
    public int calcSumOnly(int x, int y, String operation) {
        if (operation.equals("+")) {
            return x + y;
        }
        throw new UnsupportedOperationException("operation is not supported:" + operation);
    }
}

6. Заключение

В этой короткой статье мы рассказали о пяти различных сценариях, которые приведут к ошибке “незаконное начало выражения”.

В большинстве случаев при разработке приложений Java мы будем использовать среду IDE, которая предупреждает нас об обнаружении ошибок. Эти замечательные функции IDE могут значительно защитить нас от этой ошибки.

Тем не менее, мы все еще можем время от времени сталкиваться с этой ошибкой. Поэтому хорошее понимание ошибки поможет нам быстро найти и исправить ошибку.

String text = "Vova", myText = "Vova";
System.out.print(text.equals(myText) ? "Переменные схожи" : "Переменные различаются");

Тернарный оператор ?: в Java единственный оператор, который принимает три операнды.

логическоеВыржанеие ? выражение1: выражение2

Первый операнд должен быть логическим выражением. Второй и третий операнды — любым выражением, которое возвращает любое значение.

System.out.print() ничего не возвращает, поэтому и была ошибка.

Операнд — элемент данных, над которым производятся машинные операции.

нот а стэйтмент

com/javarush/task/task06/task0606/Solution.java:16: error: not a statement
for (int x = integer.parseInt(reader.readLine()); x/10!=0; x/10 )

Не нравится валидатору x/10
Что не так?

package com.javarush.task.task06.task0606;

import java.io.*;

/*
Чётные и нечётные циферки
*/

public class Solution {

public static int even;
public static int odd;

public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); //напишите тут ваш код
for (int x = integer.parseInt(reader.readLine()); x/10!=0; x/10 )
{
if (x%2=0)
even++;
else
odd++;

}

System.out.println(«Even: «+even+» Odd: «+odd);

}
}

Этот веб-сайт использует данные cookie, чтобы настроить персонально под вас работу сервиса. Используя веб-сайт, вы даете согласие на применение данных cookie. Больше подробностей — в нашем Пользовательском соглашении.

Возможно, вам также будет интересно:

  • Nox выдает ошибку при запуске
  • Nox player сервисы гугл плей произошла ошибка что делать
  • Nox player ошибка разблокировки
  • Nox player ошибка подключения к интернету
  • Nox player ошибка 1025

  • Понравилась статья? Поделить с друзьями:
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии