Где ошибка в простейшем скрипте JAVA?

Компилировал ideone.com/gA6knT
Скрипт:
class HelloWorld {
    public static void main(String[] args) {
        // int x = 10;

        for (int x = 1; x<11; x=x+1){
        	
	        if(x==1){
	        	String name = "бутылка";
	        }
	        if(x==2 | x==3 | x==4){
	        	String name = "бутылки";
	        }
	        if(x > 4 & x < 21){
	        	String name = "бутылок";
	        }
	        
        System.out.println("У нас есть " + x + name);
        }
        
    }
}

Он говорит что отсутствует переменная name я так понял (cannot find symbol symbol: variable name), так вроде для всех вариантов присутствующих в цикле она определена...

Второй вопрос: в 3 строке закомментировано int x = 10; если раскомментировать то он ругается на for (int x = 1 и говорит что переменная уже определена выше. Так JAVA не поддерживает переопредление как в php или это как-то по-другому делается?
  • Вопрос задан
  • 3293 просмотра
Решения вопроса 3
Skuayer
@Skuayer
developer
1. Проблема в области видимости переменной name. Вынесите String name = null; перед циклом, а в цикле уже определяйте ее (name = ....)

2. используйте for(x =1; x<11; x++)
Ответ написан
DigitalSmile
@DigitalSmile
http://brainstorage.me/digitalsmile
Нужно вне If инициализировать переменную.
И объявление должно быть одно в рамках одного метода.
Ответ написан
EvgenijDv
@EvgenijDv
C/C++ programmer
Что-то типа такого должно быть
class HelloWorld {
    public static void main(String[] args) {
        // int x = 10;
        String name = "";

        for (int x = 1; x<11; x=x+1){
        	
          if(x==1){
          	name = "бутылка";
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Applez
@Applez
Разраб
Вот за это по рукам надо бить.
if(x > 4 & x < 21){
И да, прочитайте про области видимости переменных.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы